¿Cómo puedo verificar si el valor de entrada es NaN
o no, sin usar la función isNaN
?¿Cómo saber si el valor es NaN sin usar isNaN, que tiene falsos positivos?
Respuesta
Si puede utilizar ECMAScript 6, tiene Object.is
:
return Object.is(obj, NaN);
De lo contrario, aquí es una opción, a partir del código fuente de underscore.js:
// Is the given value `NaN`?
_.isNaN = function(obj) {
// `NaN` is the only value for which `===` is not reflexive.
return obj !== obj;
};
También su nota para que función:
Nota: esto no es lo mismo que la función isNaN nativa, que también devolverá verdadero si la variable no está definida.
'isNaN ('0') === falso', mientras' '_.isNaN ('0')' es verdadero. –
'isNaN ('as')' es 'true', pero' _.isNaN ('as') 'es' falso'. –
@RobW ¿En qué? Eso es un error por especificación. Por especificación, lo único que no es estrictamente igual a sí mismo es NaN. – gsnedders
convertir la entrada a un número, y comprobar si la sustracción no es cero:
var x = 'value';
var is_NaN = +x - x !== 0; // The + is actually not needed, but added to show
// that a number conversion is made.
¿Qué pasa con 'x = Infinity'? – Kobi
@Kobi: 'Infinity-Infinity' es' NaN' :-P –
@Kobi 'isNaN (Infinito)' devuelve 'falso', y mi método devuelve verdadero. Infinity no es un [número real] (https://secure.wikimedia.org/wikipedia/en/wiki/Real_number), así que creo que mi implementación es mejor (no dude en disputarme). –
- 1. jQuery Si el valor es NaN
- 2. Android StrictMode que informa falsos positivos
- 3. mod_security falsos positivos
- 4. Cómo le digo a Git que tiene movimientos/cambia el nombre incorrectos (falsos positivos)
- 5. Comprobando si un número complejo tiene NaN
- 6. Intellij IDEA: falsos positivos en la compilación
- 7. Cómo combinar falsos positivos y falsos negativos en una sola medida
- 8. ¿NaN negativo no es un NaN?
- 9. ¿Cómo mantener falsos positivos en el sonar entre ramas?
- 10. Prueba si el valor del flotador es NaN
- 11. ¿Se conocen problemas de falsos positivos con Valgrind?
- 12. Determine si NSNumber es NaN
- 13. ¿Cómo saber si urllib.urlretrieve tiene éxito?
- 14. Quieting pylint falsos positivos cuando se usa django
- 15. En JSF2, ¿cómo saber si el componente compuesto tiene hijos?
- 16. Cómo saber si tiene varios Django instalados
- 17. iPhone etc: ¿cómo saber si el dispositivo tiene una cámara?
- 18. encontrar valores NaN es matriz de células
- 19. ¿Cómo saber si la clase tiene el atributo DataContract?
- 20. ¿NaN es igual a NaN?
- 21. isNaN() frente a parseInt() confusión
- 22. cómo saber si un UITextView tiene un foco o no
- 23. ¿Cómo puedo prevenir una alarma de virus falsos positivos en mi software?
- 24. ¿Cómo saber si una cadena es xml?
- 25. Cómo saber si una tabla tiene algunas columnas únicas
- 26. ¿Cómo saber si una SqlConnection tiene un SqlDataReader adjunto?
- 27. Cómo saber la variable tiene valor o no en XSLT
- 28. ¿Cómo saber si un archivo está comprimido gzip?
- 29. cómo saber si uitableview tiene una celda seleccionada
- 30. NumPy - Uso isnan (x)
¿Por qué necesitaría esto? Además, esta es una demanda muy "dame el codez", así que ... no, no ayudaremos. –
Tengo un tornillo que necesito atornillar, pero no quiero usar un destornillador. No, no te diré por qué no usaré un destornillador. Avísame, gracias. – asawyer
¿Es esta tarea? No puedo pensar en ninguna otra razón por la que quieras asignar un rol a una función 'isNaN'. – JaredPar