БигИнт

Примитивы BigInt — относительно новое дополнение к JavaScript, позволяющее выполнять математические операции с числами, выходящими за пределы диапазона, разрешенного Number . Чтобы создать BigInt, добавьте n в конец числового литерала или передайте целое или числовое строковое значение в функцию BigInt() .

const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;

typeof myNumber;
> "number"

typeof myBigInt;
> "bigint"

myNumber;
> 10000000000000000

myBigInt;
> 9999999999999999n

В этом примере 9999999999999999 находится за пределами диапазона цифр, который можно безопасно представить с помощью Number , что приводит к ошибке округления.

Значения BigInt не наследуют методы и свойства объекта Number , и их нельзя использовать с методами, предоставляемыми встроенным объектом Math в JavaScript. Самое главное, вы не можете смешивать примитивы BigInt и Number в стандартных арифметических операциях:

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

Чтобы выполнять арифметические действия с BigInts, вы должны определить оба операнда как значения BigInt:

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

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