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.

Un par de cosas que puedes hacer antes de irte para ayudarme:

A ti no te cuesta nada y a mí me ayuda un montón 😊.

Jorge Baumann aka Baumannzone
Escrito por J. Baumann

Jorge Baumann es JavaScript senior software engineer, 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 J. Baumann