number - nan javascript error
¿Cuál es la palabra clave reservada para NaN en javascript? (3)
si quiero probar el resultado de una expresión y la función devolvería NaN, ¿cómo verificaría eso?
ejemplos:
$(''amount'').value.toInt()!=''NaN''
^ no funciona y supongo que el valor devuelto no es una cadena,
$(''amount'').value.toInt()!=NaN
^ doesnt parece funcionar tampoco y este parece obvio
Entonces, ¿cómo puedo verificar si el valor devuelto no es un número?
El operador de igualdad (== y ===) no se puede usar para probar un valor contra NaN. Use Number.isNaN () o isNaN () en su lugar.
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
la mejor manera de verificar el resultado de la operación numérica contra NaN es aproximarse de esta manera, por ejemplo:
var x = 0;
var y = 0;
var result = x/y; // we know that result will be NaN value
// to test if result holds a NaN value we should use the following code :
if(result !=result){
console.log(''this is an NaN value'');
}
y está hecho.
el truco es que NaN no se puede comparar con ningún otro valor, incluso con uno mismo (NaN! = NaN siempre es cierto, así que podemos aprovechar esto y comparar el resultado contra sí mismo)
esto es JavaScript (un lenguaje bueno y extraño)
El valor de NaN se define como desigual para todo, incluido él mismo. Pruebe si un valor es NaN con la función isNaN()
, de manera adecuada. (ECMAScript 6 agrega una función Number.isNan()
con una semántica diferente para los argumentos que no son números, pero aún no es compatible con todos los navegadores a partir de 2015).
Hay dos propiedades incorporadas disponibles con un valor NaN: la propiedad global NaN
(es decir, window.NaN
en los navegadores) y Number.NaN
. No es una palabra clave de idioma. En los navegadores más antiguos, la propiedad NaN
podía sobrescribirse, con resultados potencialmente confusos, pero con el estándar ECMAScript 5 no se podía escribir .
- Como @some señaló en los comentarios, también está la función global isFinite () que puede ser útil.