Resumo : neste tutorial, você aprenderá sobre JavasScript NaN
, como verificar se um valor é NaN
e como lidar NaN
com eficácia.
Introdução ao JavaScriptNaN
JavaScript tem o tipo de número que permite representar números, incluindo números inteiros e de ponto flutuante. E o número JavaScript tem um valor especial chamado , que NaN
significa Nota – Número .
The NaN
é uma propriedade do objeto global . O objeto global é o window
objeto nos navegadores da web:
window.NaN
Linguagem de código: JavaScript ( javascript )
E o objeto global em Node.js.
global.NaN
Linguagem de código: CSS ( css )
O NaN
tem o tipo number
mostrado no código a seguir:
console.log(typeof NaN); // number
Linguagem de código: JavaScript ( javascript )
Verificando se um valor é NaN
JavaScript fornece a função global isNaN()
que retorna true
se seu argumento for NaN
:
isNaN(valueToCheck)
Linguagem de código: JavaScript ( javascript )
Por exemplo:
const result = 100 + 0 / 0;
console.log(isNaN(result)); // true
Linguagem de código: JavaScript ( javascript )
Por que usar NaN
JavaScript usa NaN
como resultado de uma operação com falha em números, incluindo:
- Analisando números
- Usando
undefined
como operando - Usando
NaN
como operando - Usando formas indeterminadas
- Passando argumentos inválidos para uma função matemática
Operações retornam NaN
1) Análise de números
Em JavaScript, você pode converter uma string numérica em um número. Por exemplo:
const input = '100';
const num = parseInt(input);
console.log(num); // 100
Linguagem de código: JavaScript ( javascript )
Se o JavaScript não puder converter uma string em um número, ele retornará NaN
. Neste caso, NaN
indica que a análise falhou. Por exemplo:
const input = 'X100';
const num = parseInt(input);
console.log(num); // NaN
Linguagem de código: JavaScript ( javascript )
É uma boa prática verificar o resultado da análise usando a isNaN
função:
const input = 'X100';
const num = parseInt(input);
// set num to 0 if parsing failed
if (isNaN(num)) {
num = 0;
}
console.log(num); // 0
Linguagem de código: JavaScript ( javascript )
Neste exemplo, a análise falhou e, portanto, retornou NaN
. A condição isNaN(num)
é verdadeira para que o número seja atribuído a 0
.
2) Use indefinido como operando
Uma expressão usada undefined
como operando retorna NaN
. Por exemplo:
console.log(undefined * 2); // NaN
Linguagem de código: JavaScript ( javascript )
Na prática, você lidará com indefinidos com bastante frequência. Por exemplo, quando você acessa uma propriedade inexistente de um elemento HTML e a utiliza em um cálculo.
É uma boa prática evitar o uso undefined
em cálculos.
3) Usando NaN como operando
Quando uma expressão possui NaN, ela sempre retorna NaN. Por exemplo:
const result = 10 + 1 / NaN;
console.log(result); // NaN
Linguagem de código: JavaScript ( javascript )
4) Usando formas indeterminadas
Quando uma operação aritmética está na forma indeterminada, ela retorna NaN. Por exemplo:
const result = 10 + 0 / 0;
console.log(result); // NaN
Linguagem de código: JavaScript ( javascript )
5) Usando argumentos inválidos de funções matemáticas
Quando uma função matemática recebe um argumento inválido, ela retorna NaN. Por exemplo:
const result = Math.sqrt(-1);
console.log(result); // NaN
Linguagem de código: JavaScript ( javascript )
Neste exemplo, o Math.sqrt()
que retorna a raiz quadrada de um número. Como aceita apenas um número não negativo, passar -1 resulta em NaN
.
Resumo
- NaN significa Não-um-Número. É um valor especial da
NaN
propriedade do objeto global. - NaN indica uma operação com falha em números.
- Use
isNaN()
a função para verificar se um valor éNaN
.