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 Language Specification
# sec-number.isnan

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também