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

valor
El valor para ser testado por NaN.

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

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Number.isnan' en esta especificación.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
La definición de 'Number.isnan' en esta especificación.
Draft  

Compatibilidad de navegador

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 25 15 (15) Sin soporte (Yes) 9
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support Sin soporte ? 15.0 (15) Sin soporte Sin soporte 9

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: abaracedo
Última actualización por: abaracedo,