NaN

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Resumo

A propriedade global NaN é um valor especial que significa Not-A-Number (não é um número).

Property attributes of NaN
Writableno
Enumerableno
Configurableno

Sintaxe

NaN

Descrição

NaN é uma propriedade do objeto global.

O valor inicial de NaN é Not-A-Number - o mesmo valor de Number.NaN. Nos navegadores modernos, o NaN é uma propriedade somente leitura e não configurável. Mesmo quando não for este o caso, evite sobrescrevê-lo.

Não é usual a utilização do NaN. Ele é retornado quando uma operação matemática falha (Math.sqrt(-1)) ou quando uma função tenta transformar uma string em inteiro (parseInt("blabla")).

Testando um valor NaN

Os operadores de igualdade (== e ===) não podem ser usados para testar um valor NaN. Ao invés disso, utilize Number.isNaN() ou isNaN().

js
NaN === NaN; // falso
Number.NaN === NaN; // falso
isNaN(NaN); // verdadeiro
isNaN(Number.NaN); // verdadeiro

Especificações

Specification
ECMAScript Language Specification
# sec-value-properties-of-the-global-object-nan

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também