¿Cuál es el propósito de un símbolo más antes de una variable?

Respuestas:

312

El +operador devuelve la representación numérica del objeto. Entonces, en su caso particular, parecería estar predicando el if en si es o no dun número distinto de cero.

La referencia aquí . Y, como se señala en los comentarios, aquí .

Paul Sonier
fuente
Solo me pregunto cuál es más eficiente, ¿analizar una cadena en un entero usando la función parseInt o usando el operador más?
acarlstein el
1
¿Cómo es diferente de .parseInt()?
Daniel W.
1
@acarlstein del enlace MDN en la respuesta: "Aunque la negación unaria (-) también puede convertir no números, unario más es la forma más rápida y preferida de convertir algo en un número , porque no realiza ninguna otra operación en el número ". (solo por una respuesta "oficial")
AN
22

Es un operador unario "+" que produce una expresión numérica. Sería lo mismo que d*1, creo.

naivistas
fuente
12

Como se explicó en otras respuestas, convierte la variable en un número. Especialmente útil cuando d puede ser un número o una cadena función que se evalúa como un número

Ejemplo (usando la addMonthsfunción en la pregunta):

addMonths(34,1,true);
addMonths("34",1,true);

entonces el +devaluará a un número en todos los casos. Por lo tanto, evitando la necesidad de verificar el tipo y tomar diferentes rutas de código dependiendo de si des un número, una función o una cadena que se puede convertir en un número.

RubenLaguna
fuente
+dno evaluará a un número con el primer ejemplo de invocación de addMonths
Gus Crawford
Es cierto, no sé qué hice cuando escribí esto. +function(){...}producirá un NaNno evaluar la función
RubenLaguna
44
¿Podrías editar tu respuesta para eliminar a los locos? Es bastante confuso.
Buh Buh