BigInt

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