JavaScript Infinito

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); // numberLinguagem 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 truese for valuefinito; Caso the valueseja infinito, o Number.isFinite()retorno é false.

console.log(Number.isFinite(100)); // true
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(-Infinity)); // falseLinguagem de código:  JavaScript  ( javascript )

Além disso, você pode comparar um valor com Infinityeste:

let counter = 100;
console.log(counter === Infinity); // falseLinguagem de código:  JavaScript  ( javascript )

E um número infinito é igual a outro número infinito:

console.log(Infinity === Infinity); // trueLinguagem 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); // 120Linguagem 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); // NaNLinguagem de código:  JavaScript  ( javascript )

Se a string de entrada for Infinity, parseInt()também retornará NaNporque não reconhece o número infinito:

let weight = parseInt('Infinity');
console.log(weight); // NaNLinguagem de código:  JavaScript  ( javascript )

Mas se você usar a parseFloat()função assim:

let weight = parseFloat('Infinity');
console.log(weight); // InfinityLinguagem de código:  JavaScript  ( javascript )

…a parseFloat()função reconhece Infinitye 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 ratingsmatriz:

let ratings = [1, 2, 3, 4, 5];

let max = Math.min(...ratings);
console.log(max); // 1Linguagem de código:  JavaScript  ( javascript )

No entanto, quando o ratingsarray 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); // InfinityLinguagem de código:  JavaScript  ( javascript )

Resumo

  • O Infinityrepresenta 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')retornos Infinity.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *