NaN en JavaScript: guía rápida para desarrolladores

Una chuleta (cheatsheet) sobre NaN (Not a Number) en JavaScript.

Propiedades y funciones

JavaScript tiene la propiedad global NaN y dos funciones para verificar valores NaN.

Propiedad global NaN

Función isNaN()

Función Number.isNaN()

Generando NaN

Hay varias maneras de producir un valor NaN.

Convertir a número

Convertir un valor a un número que no se puede convertir a un número resulta en NaN.

Number("WTF");
parseInt("Baumann");
parseFloat("Rambito.js");

No es un número real

Hacer una operación matemática donde el resultado no es un número real resulta en NaN.

0 / 0;
Math.sqrt(-1);
Infinity - Infinity;

Operación con NaN

Hacer una operación matemática con NaN resulta en NaN.

1 * NaN;
2 + NaN;
NaN / NaN;

Forma indeterminada

Operaciones que están en formas indefinidas producen NaN.

undefined * 2;
undefined + undefined;

Operaciones con cadena de texto

Hacer una operación con un string que no se puede convertir a un número produce NaN, excepto las operaciones de suma, que unen los valores.

"Rambito.js" * 2; // => NaN
"Hola" + 2; // => "Hola2"

Extra 🚀

🤯 Si le preguntas a Siri "¿Cuánto es 0 dividido por 0?", te dirá esto:

Hace algunos años, Siri respondía con esta brillante respuesta:

Imaginas que tienes 0 galletas y las repartes entre 0 amigos. ¿Cuántas galletas le tocan a cada amigo? No tiene sentido, ¿lo ves?

Así que el monstruo de las galletas está triste porqué no tiene galletas y tu estás triste porque no tienes amigos.


Comparte

Jorge Baumann aka Baumannzone
Escrito por Jorge Baumann

Jorge Baumann es Senior Software Engineer, especializado en JavaScript. También es creador de contenido y speaker. Vive en Madrid, le encanta el testing, dibujar con CSS y tiene un perro que se llama Rambo.

Conoce más sobre Baumann