Junior
¿Cómo verificar si un número es NaN?
sobes.tech AI
Respuesta de la IA
Utilizan la función isNaN(), que verifica si el valor es "No es un número" (Not-a-Number).
// Ejemplos de uso de isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, ya que 'hello' no puede convertirse en número
console.log(isNaN('123')); // false, ya que '123' puede convertirse en el número 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, ya que null se convierte en 0
// Verificación de conversión de tipos en isNaN()
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
También existe el método Number.isNaN(), que verifica de manera más estricta si el valor es exactamente NaN, sin realizar conversión previa.
// Ejemplos de uso de Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, no realiza conversión a número
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Diferencias con isNaN() en argumentos no numéricos
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
Comparar NaN consigo mismo o con cualquier otro valor siempre devuelve false, excepto cuando se usa Object.is().
// Característica de comparación con NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Comparación usando Object.is()
console.log(Object.is(NaN, NaN)); // true
Dependiendo de la tarea, puede ser necesario usar isNaN() (si importa la conversión a número) o Number.isNaN() (para una verificación estricta de NaN). El método Number.isNaN() es preferible para verificar si un valor específico es exactamente NaN.