Resumo : neste tutorial, você aprenderá sobre JavaScript Infinity e seus recursos.
Introdução ao JavaScript Infinity
The Infinity
é uma propriedade do objeto global . Em outras palavras, é uma variável global.
O valor inicial de Infinity
é Number.POSITIVE_INFINITY
, que é maior que outros números finitos.
JavaScript também possui um negativo Infinity
( -Infinity
) onde seu valor é Number.NEGATIVE_INFINITY
. O -Infinity
é menor que qualquer número finito.
O tipo Infinity
é number
:
const result = typeof (Infinity);
console.log(result); // number
Linguagem de código: JavaScript ( javascript )
Verificando o Infinito
JavaScript fornece o Number.isFinite()
que verifica se um valor é finito:
Number.isFinite(value);
Linguagem de código: JavaScript ( javascript )
Ele retorna true
se for value
finito; Caso the value
seja infinito, o Number.isFinite()
retorno é false
.
console.log(Number.isFinite(100)); // true
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(-Infinity)); // false
Linguagem de código: JavaScript ( javascript )
Além disso, você pode comparar um valor com Infinity
este:
let counter = 100;
console.log(counter === Infinity); // false
Linguagem de código: JavaScript ( javascript )
E um número infinito é igual a outro número infinito:
console.log(Infinity === Infinity); // true
Linguagem de código: JavaScript ( javascript )
Armadilhas do Infinito
1) função parseFloat()
Suponha que você tenha um formulário que coleta informações do usuário. No formulário, você tem um campo que permite ao usuário inserir seu peso.
Como o valor do campo do formulário é uma string, é necessário convertê-lo em um número:
let weight = parseInt('120kg');
console.log(weight); // 120
Linguagem de código: JavaScript ( javascript )
Isso está funcionando bem. Se os usuários inserirem uma string que não pode ser convertida em um número, retornará parseInt()
um NaN
:
let weight = parseInt('More than 100kg');
console.log(weight); // NaN
Linguagem de código: JavaScript ( javascript )
Se a string de entrada for Infinity
, parseInt()
também retornará NaN
porque não reconhece o número infinito:
let weight = parseInt('Infinity');
console.log(weight); // NaN
Linguagem de código: JavaScript ( javascript )
Mas se você usar a parseFloat()
função assim:
let weight = parseFloat('Infinity');
console.log(weight); // Infinity
Linguagem de código: JavaScript ( javascript )
…a parseFloat()
função reconhece Infinity
e retorna um número infinito.
Portanto, é uma boa prática emitir um erro de validação quando um campo de entrada contém a 'Infinity'
string.
2) serialização JSON
O JSON.stringify()
serializa um número infinito para null
. Por exemplo:
const resource = {
amount: Infinity
};
let result = JSON.stringify(resource);
console.log(result);
Linguagem de código: JavaScript ( javascript )
Saída:
{"amount":null}
Linguagem de código: JSON/JSON com comentários ( json )
3) Métodos matemáticos
Algumas funções matemáticas retornam um número infinito.
O Math.min()
método a seguir retorna os menores números da ratings
matriz:
let ratings = [1, 2, 3, 4, 5];
let max = Math.min(...ratings);
console.log(max); // 1
Linguagem de código: JavaScript ( javascript )
No entanto, quando o ratings
array está vazio, o Math.min()
método retorna Infinity
:
let ratings = [1, 2, 3, 4, 5];
//
somewhere in the code
ratings = []; // empty array
//
let max = Math.min(...ratings);
console.log(max); // Infinity
Linguagem de código: JavaScript ( javascript )
Resumo
- O
Infinity
representa um número infinito. É uma variável global cujo valor éInfinity
. - The
Infinity
é maior que qualquer número finito, enquanto the-Infinity
é menor que qualquer número finito. - Os
parseFloat('Infinity')
retornosInfinity
.