Resumo : neste tutorial, você aprenderá sobre o BigInt
tipo que é o objeto integrado que pode representar números inteiros maiores que 2 53 – 1.
Introdução ao JavaScript BigInt
ES2020 introduziu um novo objeto integrado chamado BigInt
que permite representar números inteiros maiores .253 - 1
O bigint
é o tipo primitivo como number
, string
, symbol
, boolean
undefined
e null
.
Para fazer um BigInt
, você anexa n
ao final do número literal, por exemplo:
let bigInt = 9007199254740991n;
Linguagem de código: JavaScript ( javascript )
Alternativamente, você pode chamar a função BigInt()
:
let bigInt = BigInt(9007199254740991);
Linguagem de código: JavaScript ( javascript )
Veja o seguinte cálculo com a Number
:
let x = Number.MAX_SAFE_INTEGER;
x = x + 1; // 9007199254740992
x = x + 1; // 9007199254740992 (same as above)
Linguagem de código: JavaScript ( javascript )
e com um BigInt
:
let x = BigInt(Number.MAX_SAFE_INTEGER);
x = x + 1; // 9007199254740992n
x = x + 1; // 9007199254740993n (correct now)
Linguagem de código: JavaScript ( javascript )
Tipo
O tipo de a BigInt
é bigint
. Por exemplo:
console.log(typeof bigInt); // bigint
console.log(typeof BigInt(100) === 'bigint'); // true
Linguagem de código: JavaScript ( javascript )
Operadores
O BigInt
suporta o seguinte operador +
, *
, -
, **
, %
, operadores bit a bit, exceto >>>
(deslocamento para a direita com preenchimento de zero). Não suporta o operador unário ( +
).
A /
operadora também trabalhará com números inteiros. No entanto, o resultado não retornará nenhum dígito fracionário. Por exemplo:
let result = 3n / 2n;
console.log(result); // 1n, not 1.5n
Linguagem de código: JavaScript ( javascript )
Comparações
A BigInt
não é estritamente igual ( ===
) a a Number
:
console.log(1n === 1); // false
Linguagem de código: JavaScript ( javascript )
No entanto, a BigInt
é aproximadamente igual a um número quando você usa o ==
operador:
console.log(1n == 1); // true
Linguagem de código: JavaScript ( javascript )
Você pode usar <
, <=
, >
, >=
para comparar a BigInt
com a Number
:
console.log(1n < 2); // true
console.log(2n > 1); // true
console.log(2n >= 2); // true
Linguagem de código: JavaScript ( javascript )
Condicionais
A BigInt
é convertido em a Boolean
por meio da função em condicionais , Boolean()
como if
instrução ou operadores lógicos ||
. &&,
!
Ou seja, funciona como um Number
nestes casos. Por exemplo:
let count = 0n;
if(count) {
console.log(true);
} else {
console.log(false);
}
Linguagem de código: JavaScript ( javascript )
Resumo
- O
BigInt
é um novo tipo primitivo que pode representar números inteiros maiores que , que é o maior número que o Javascript pode representar de forma confiável com o tipo.253 - 1
number
- Anexe
n
a um número inteiro literal ou useBigInt()
uma função para criar um arquivobigint
.