NaN - Isso não é um número no JavaScript
NaN é a abreviação de Not a Number, que traduzido significa "não é um número". Apesar do nome, ele é tecnicamente um valor numérico especial que indica o resultado de uma operação matemática inválida ou indefinida. Em JavaScript, NaN é um valor do tipo number
. Vamos explorar alguns exemplos:
// tentativa de subtração de número por string
let n = 10 - 'João' // resulta em NaN
// tentativa de multiplicação entre arrays
let a = [1, 2, 3] * ['a', 'b', 'c'] // resulta em NaN
// tentativa de conversão de string para número
parseInt('Maria') // resulta em NaN
Todos os exemplos acima resultam em uma operação matemática inválida, retornando como resultado o valor NaN
.
Propriedades do NaN
NaN é único: Ele é o único valor em JavaScript que não é igual a si mesmo. Por exemplo:
console.log(NaN === NaN) // false
Tipo de NaN: Apesar de representar "não é um número", o tipo de
NaN
énumber
:console.log(typeof(NaN)) // "number"
Validando se o valor é NaN
Para verificar se um valor é NaN
, utilize a função isNaN()
. Ela testa o valor e retorna true
se for NaN
, ou false
caso contrário. Exemplo:
let resultado = 10 - 'João'
if (isNaN(resultado)) {
console.log('A variável "resultado" não é válida.')
}
Atenção ao isNaN()
A função isNaN()
tenta converter o valor para um número antes de verificar se é NaN
. Isso pode levar a resultados inesperados. Por exemplo:
console.log(isNaN('abc')) // true, pois 'abc' não pode ser convertido para número
console.log(isNaN('123')) // false, pois '123' é convertido para o número 123
Para uma verificação mais precisa, use Number.isNaN()
, que não realiza conversões:
console.log(Number.isNaN('abc')) // false
console.log(Number.isNaN(NaN)) // true
Conclusão
O valor NaN
é uma parte importante do JavaScript para lidar com operações matemáticas inválidas. Entender como ele funciona e como validá-lo corretamente é essencial para evitar comportamentos inesperados em seu código.