2012-07-06 9 views
44

Duplicar posible:
Comparing NaN values for equality in Javascript¿Cómo hago la prueba de NaN?

¿Puede alguien decirme por qué esto no está funcionando?

if(inbperr == NaN){ 
document.getElementById('inbclo').value = "N/A"; 
} 
else{ 
document.getElementById('inbclo').value = "%" + inbperr; 
} 

En lugar de devolver un valor porcentual o "N/A", como lo quiero a él es volver "NaN%".

+0

Sólo una sintaxis alternativa que es DRY-er ... 'document.getElementById ('inbclo') valor = isNaN (inbperr) 'N/A':.? "%" + Inbperr;' – Basic

+0

Posible duplicado de http://stackoverflow.com/questions/2652319/how-do-you-check-that-a-number-is-nan-in-javascript – Foreever

+2

'function isReallyNaN (a) { \t \t return isNaN (a) && "number" == typeof a \t}; ' – SpYk3HH

Respuesta

82

NaN son inusuales: no son iguales a nada, incluso a ellos mismos. Debe usar isNaN(inbperr) para saber si un valor es un NaN o no.

+1

Para obtener más información, lea https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN?redirectlocale= es-ES y redirectslug = JavaScript% 2FReference% 2FGlobal_Objects% 2FisNaN –

+15

'typeof NaN' ======>' "number" 'WTF? No, es * no * un número, lo establecimos. – charltoons

+0

+1 Exactamente lo que necesitaba. –

1

NaN no es un número. Uno de los pocos tipos tóxicos de JavaScript. Puede reducir toda la expresión a NaN.

http://www.crockford.com/javascript/encyclopedia/

+0

¿Por qué "_toxic" "?:]' NaN' generalmente aparece, cuando intentas dividir por cero. Según las matemáticas (al menos esto, que aprendí hace años), el resultado no es un número (es un infinito o algo similar extraño/tóxico). ¿Cómo le gustaría representar esto en Javascript? – trejder

+2

es "tóxico" porque el cálculo completo se reduce a NaN. Ejemplo: a * b * c/d-e + f. Si alguna de las variables es NaN toda la calculción se convierte en NaN. Ninguna excepción, ninguna advertencia, la secuencia de comandos continúa ejecutándose y lleva ese NaN hasta que choca contra la pared. Así que puedes encontrar NaN en lugares extraños. – CoR

+0

Desde este punto de vista - ¡de acuerdo!:] – trejder