Number.isNaN()
Baseline
Ampliamente disponible
Esta caracterÃstica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde septiembre de 2015.
El método Number.isNaN() determina si el valor pasado es NaN. Versión más robusta de la función global isNaN().
Sintaxis
Number.isNaN(value)
Parámetros
Description
Debido a los dos operadores de igualdad, == y ===, evaluando a false cuando al comprobar si NaN is NaN, la función Number.isNaN() se ha convertido en necesaria. Esta situación es diferente a las otras comparaciones de valor en JavaScript.
En comparación a la función global isNaN(), Number.isNaN() no sufre el problema de forzar la conversión del parámetro a un número. Esto significa que ahora es seguro pasar valores que normalmente se convertirÃan a NaN, pero no son del mismo valor que NaN. Esto también significa que solo los valores de tipo número, que también son NaN, retornan true.
Examples
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0); // true
// e.g. estos hubiesen sido true con la función global isNaN()
Number.isNaN("NaN"); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN("blabla"); // false
// Todos retornan false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
Polyfill
Number.isNaN =
Number.isNaN ||
function (value) {
return typeof value === "number" && isNaN(value);
};
// O
Number.isNaN =
Number.isNaN ||
function (value) {
return value !== value;
};
Especificaciones
| Especificación |
|---|
| ECMAScript® 2027 Language Specification > # sec-number.isnan > |