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 parecen funcionar bien y éste parece obvio
Entonces, ¿cómo comprobado si el valor devuelto no es un numero?¿Cuál es la palabra reservada para NaN en javascript?
Respuesta
El valor NaN se define como desigual a todo, incluido a sí 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 argumentos sin número, pero no es compatible en todos los navegadores hasta 2015).
Hay dos propiedades integradas disponibles con un valor NaN: la propiedad global NaN
(es decir, window.NaN
en los navegadores) y Number.NaN
. Es no una palabra clave de idioma. En los navegadores más antiguos, la propiedad NaN
podría sobrescribirse, con resultados potencialmente confusos, pero con el ECMAScript 5 standard it was made non-writable.
- Como @some señaló en los comentarios, también existe la función global isFinite() que puede ser útil.
muchas gracias :) realmente ayudó + 20rep para usted – lock
@lock, es 10 para una votación y 15 para una aceptación, entonces eso es 25 (a menos que las cosas hayan cambiado recientemente). Y aquí hay otros 10, @Miles. – paxdiablo
lo siento, las matemáticas equivocadas, gracias de nuevo a la comunidad de programación muy útil – lock
El operador de igualdad (== y ===) no se puede usar para probar un valor con respecto a 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 comprobar el resultado de la operación numérica contra NaN es aproach esta manera, 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 se hace.
el truco es que NaN no se puede comparar con cualquier otro valor, incluso con él mismo (NaN! = NaN es siempre verdad para que podamos tomar ventaja de esto y comparar resultado contra sí mismo)
esto es JavaScript (un lenguaje bueno y extraño)
- 1. ¿Cuál es la diferencia entre "palabra clave" y "palabra reservada"?
- 2. Javascript paquete, es una palabra clave reservada
- 3. palabra reservada no listada?
- 4. Gson Java palabra clave reservada
- 5. ¿Por qué es accesible una palabra reservada en mysql?
- 6. Palabra clave reservada en la enumeración en C#
- 7. ¿Cuál es la palabra clave `name` en JavaScript?
- 8. ¿Cuál es la palabra para "habilitar/deshabilitar"?
- 9. Compatibilidad con el navegador para utilizar una palabra reservada como nombre de propiedad en JavaScript
- 10. ¿NaN es igual a NaN?
- 11. ¿Qué hace exactamente la palabra reservada "LineNo" de T-SQL?
- 12. ID amigable y error al utilizar la palabra reservada
- 13. Palabra reservada en nombre de columna - insertar en MySQL
- 14. ¿Cuál es la palabra clave explícita para en C++?
- 15. Uso de JSHint con Express.js/'eliminar' (una palabra reservada)
- 16. JavaScript: ¿qué es NaN, Object o primitive?
- 17. ¿Cómo puedo escapar de una palabra reservada en Oracle?
- 18. ¿Cuál es la representación interna de inf y NaN?
- 19. ¿Cuál es el mejor algoritmo para la palabra más cercana
- 20. ¿NaN negativo no es un NaN?
- 21. ¿Qué palabra clave reservada en la especificación de lenguaje F # debe implementarse en vNext?
- 22. ¿Por qué es (1 <NaN) falso en JavaScript?
- 23. JavaScript "tupla" notación: ¿cuál es su punto?
- 24. ¿Para qué se utiliza la palabra clave 'char'?
- 25. acceso en campo de .Net C# cuando el nombre del campo es una palabra clave reservada
- 26. ¿Cuál es el fundamento del comportamiento de la palabra clave "this" en JavaScript?
- 27. ¿Cuál es la ventaja de inicializar múltiples variables de JavaScript con la misma palabra clave var?
- 28. ¿Cuál es la expresión regular de una palabra en español?
- 29. ¿Cuál es la diferencia entre la memoria reservada y la comprometida?
- 30. ¿Hay un equivalente de Ruby para el tipo de palabra reservada en C#?
Se emite undefined por lo general para cualquier tipo de locura. –