Number.isNaN()

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

O método Number.isNaN() determina se o valor passado é NaN. Versão mais robusta do original global isNaN.

Sintaxe

Number.isNaN(testValue)

Parâmetros

testValue

O valor a ser testado por NaN.

Descrição

Devido a ambos os operadores de igualdade, == and ===, avaliar a false quando está verificando se NaN é NaN, a função Number.isNaN se torna necessária. Esta situação é diferente de todas as outras comparações de valor possível em JavaScript.

Em comparação a função global isNaN, Number.isNaN não sofre do problema de forçar a conversão do parâmetro para um número. Isso significa que ele é seguro para passar valores que, normalmente, se convertem em NaN, mas na verdade não são o mesmo valor que NaN. Isto também significa que apenas os valores do número do tipo, que são também NaN, retorna true.

Exemplos

js
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0); // true

// everything else: false
Number.isNaN(undefined);
Number.isNaN({});

Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);

Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
Number.isNaN("NaN");
Number.isNaN("blabla"); // e.g. este teria sido true com isNaN

Especificações

Specification
ECMAScript® 2025 Language Specification
# sec-number.isnan

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
isNaN

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Veja também