2009-03-04 11 views

Respuesta

33

La ventaja unaria está ahí para completar, en comparación con el menos común familiar (-x). Sin embargo, tiene el efecto secundario, invocada aquí, de fundición myInput.value en un número, si se trata de algo distinto, como una cadena:

alert(1+'2'); // 12 
alert(1+(+'2')); // 3 
+0

Gracias, no sabía esta notación. Supongo que esto es básicamente una abreviatura de parseInt()? –

+2

No son exactamente iguales, Luke, mira aquí para más información: http://alexle.net/archives/290 –

+0

Además, por supuesto, estaría más cerca de 'parseFloat'. + -casting admite literales de números de punto flotante completo, incluyendo rarezas como + 'Infinito'. – bobince

8

que se llama el "operador unario +", que puede ser utilizado como una forma rápida de forzar que una variable se convierta en un número, para que pueda usarse en una operación matemática.

2

El + es para convertirlo en un número como han dicho otros. Se necesita allí porque las entradas de formulario siempre son valores de cadena, y agregar una cadena a otra variable los concatena en una nueva cadena, incluso si la cadena se parece a un número.

1

El operador unario es, aritméticamente hablando, un noop. Pero al igual que todos los demás operadores puramente aritméticos, convertirá su argumento en el tipo de número de JavaScript y, por lo tanto, se puede usar como una abreviatura para un molde explícito.

La conversión de tipo explícito en JavaScript se realiza llamando a las funciones de constructor apropiadas sin usando el operador new.

Por ejemplo,

Number(foo) 

convertirá foo a una primitiva de número de tipo, mientras que new Number(foo) sería, además, crear un objeto de contenedor para el primitivo y por lo tanto es equivalente a

Object(Number(foo)) 

similares a esta uso de + es el uso de !! para convertir a tipo booleano.

Cuestiones relacionadas