quitar number isnan error entre diferencia como javascript null undefined nan zero

isnan - string to number javascript



¿Es nulo considerado cero e indefinido, no un número en expresiones aritméticas? (3)

¿Se evalúa null en 0 y undefined en NaN en expresiones aritméticas?

Según algunas pruebas, parece que sí:

> null + null 0 > 4 + null 4 > undefined + undefined NaN > 4 + undefined NaN

¿Es seguro o correcto suponer esto? (una cita de una documentación sería A +).


¿Se evalúa nulo en 0 y no está definido en NaN en expresiones aritméticas? ¿Es seguro o correcto suponer esto?

Sí lo es. Una "expresión aritmética" usaría la operación ToNumber :

Argument Type | Result --------------+-------- Undefined | NaN Null | +0 … |

Se usa en las siguientes expresiones "aritméticas":

No es utilizado por los operadores de igualdad , por lo que null == 0 es falso (y null !== 0 todos modos)!


Parece seguro suponerlo ya que, en una expresión aritmética ( por ejemplo, adición ), se llamaría al método ToNumber , evaluando NaN y +0 desde undefined y null respectivamente:

To Number Conversions ╔═══════════════╦════════════════════════════════════════════╗ ║ Argument Type ║ Result ║ ╠═══════════════╬════════════════════════════════════════════╣ ║ Undefined ║ NaN ║ ║ ║ ║ ║ Null ║ +0 ║ ║ ║ ║ ║ Boolean ║ The result is 1 if the argument is true. ║ ║ ║ The result is +0 if the argument is false. ║ ║ ║ ║ ║ Number ║ The result equals the input argument (no ║ ║ ║ conversion). ║ ║ ║ ║ ║ String ║ See grammar and note below. ║ ║ ║ ║ ║ Object ║ Apply the following steps: ║ ║ ║ 1. Let primValue be ToPrimitive(input ║ ║ ║ argument, hint Number). ║ ║ ║ 2. Return ToNumber(primValue). ║ ╚═══════════════╩════════════════════════════════════════════╝

Especificación del lenguaje ECMAScript - ECMA-262 Edition 5.1