¿Cuál es el resultado de 'typeof NaN' en JavaScript?

Entendiendo 'typeof NaN' en JavaScript

En JavaScript, cuando utilizamos la operación 'typeof NaN', el resultado que obtenemos es 'number', lo que puede parecer contra intuitivo, pero es completamente correcto según la especificación del lenguaje.

¿Por qué 'typeof NaN' devuelve 'number'?

NaN significa Not-a-Number, sin embargo, es considerado como un valor numérico en JavaScript. Esto se debe a que es el resultado de operaciones matemáticas indefinidas o irrealizables, como la división de cero por cero, la raíz cuadrada de un número negativo o la conversión de una cadena no numérica a un número.

Por lo tanto, aunque parece extraño, 'typeof NaN' devuelve 'number' en JavaScript, porque NaN es un valor especial que forma parte del conjunto de los números.

Ejemplos de uso de NaN en JavaScript

Veamos algunos ejemplos prácticos:

console.log(typeof NaN);  // Devuelve "number"

var a = 0/0;             // Resulta en NaN
console.log(typeof a);   // Devuelve "number"

var b = Math.sqrt(-1);   // Resulta en NaN
console.log(typeof b);   // Devuelve "number"

var c = Number("string"); // Resulta en NaN
console.log(typeof c);   // Devuelve "number"

¿Cómo trabajar con NaN en JavaScript?

Aunque NaN es de tipo 'number', no es igual a ningún otro valor, incluyendo a sí mismo. Entonces, no se puede confiar en la igualdad (NaN == NaN dará falso) para verificar si una variable es NaN. En su lugar, se debe utilizar la función global isNaN() para verificar si un valor es NaN.

var a = 0/0;

if (isNaN(a)) {
  console.log('a es NaN');
} else {
  console.log('a no es NaN');
}

Este código devolverá 'a es NaN'.

Resumiendo, NaN es un valor numérico especial en JavaScript que representa el resultado de una operación matemática indefinida o irrealizable. Cuando se utiliza 'typeof NaN', se devuelve 'number', ya que NaN es considerado un valor de tipo numérico. Para revisar si una variable es NaN en JavaScript, se debe utilizar la función isNaN().

¿Te resulta útil?