As primitivas de BigInt são uma adição relativamente nova ao
JavaScript, permitindo operações matemáticas em números fora do intervalo
permitido por Number
. Para criar um BigInt, anexe n
ao final de um número.
ou passe um valor inteiro ou de string numérica para a função BigInt()
.
const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;
typeof myNumber;
> "number"
typeof myBigInt;
> "bigint"
myNumber;
> 10000000000000000
myBigInt;
> 9999999999999999n
Neste exemplo, 9999999999999999
está fora do intervalo de dígitos que podem ser
representada com segurança por Number
, causando um erro de arredondamento.
Os valores de BigInt não herdam os métodos e propriedades do objeto Number
fornece e não podem ser usadas com os métodos do Math
integrado do JavaScript
objeto fornece. Mais importante, não é possível misturar Primitivas de BigInt e Número
operações aritméticas padrão:
9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number
Para fazer aritmética com BigInts, você precisa definir os dois operandos como valores BigInt:
console.log( 9999999999999999 + 10 ); // Off by one
> 10000000000000010
console.log( 9999999999999999n + 10n );
> 10000000000000009n