--- title: isNaN slug: Web/JavaScript/Reference/Global_Objects/isNaN translation_of: Web/JavaScript/Reference/Global_Objects/isNaN original_slug: Web/JavaScript/Referencia/Objetos_globales/isNaN ---
La función isNaN() determina cuando el valor es {{jsxref("NaN")}} o no. Tenga presente que la coerción dentro de la función isNaN tiene reglas interesantes; tal vez quieras usar de forma alternativa Number.isNaN(), como fue definido en ECMAScript 2015.
isNaN(valor)
valortrue si es valor dado es {{jsxref("NaN")}}, de otro modo, false.
isNaN es una función de alto nivel y no está asociada a ningún objeto.
isNaN intenta convertir el parámetro pasado a un número. Si el parámetro no se puede convertir, devuelve true; en caso contrario, devuelve false.
Esta función es útil ya que el valor {{jsxref("Objetos_globales/NaN", "NaN")}} no puede se probado correctamente con operadores de igualdad. x == NaN y x === NaN son siempre false, sin importar lo que sea x, incluso si x es NaN. Por ejemplo, tanto 1 == NaN como NaN == NaN devuelven false.
isNaN(NaN) //devuelve true
isNaN("string") //devuelve true
isNaN("12") //devuelve false
isNaN(12) //devuelve false
| Especificación | Estado | Comentario |
|---|---|---|
| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial |
| {{SpecName('ES5.1', '#sec-15.1.2.4', 'isNaN')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES6', '#sec-isnan-number', 'isNaN')}} | {{Spec2('ES6')}} | |
| {{SpecName('ESDraft', '#sec-isnan-number', 'isNaN')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.isNaN")}}