BigInt

Las primitivas BigInt son una agregación relativamente nueva a JavaScript, lo que permite operaciones matemáticas en números fuera del rango permitido por Number. Para crear un BigInt, agrega n al final de un literal de número o pasa un valor de cadena entero o numérico a la función BigInt().

const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;

typeof myNumber;
> "number"

typeof myBigInt;
> "bigint"

myNumber;
> 10000000000000000

myBigInt;
> 9999999999999999n

En este ejemplo, 9999999999999999 está fuera del rango de dígitos que Number puede representar de forma segura, lo que genera un error de redondeo.

Los valores de BigInt no heredan los métodos ni las propiedades que proporciona el objeto Number, y no se pueden usar con los métodos que proporciona el objeto Math integrado de JavaScript. Lo más importante es que no puedes mezclar las primitivas BigInt y Number en operaciones aritméticas estándar:

9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number

Para realizar aritmética con BigInt, debes definir ambos operandos como valores de BigInt:

console.log( 9999999999999999 + 10 );  // Off by one
> 10000000000000010

console.log( 9999999999999999n + 10n );
> 10000000000000009n