¿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í .




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.


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.


+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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.