логотип PurpleSchool
Иконка входа
Вход
логотип PurpleSchool

BigInt в JavaScript

Автор

Дмитрий Нечаев

В JavaScript числа представлены с помощью типа данных number, который имеет ограничения на диапазон значений. Однако иногда требуется работать с числами большой величины, которые не помещаются в стандартный тип данных number. Для этой цели в JavaScript существует объект BigInt, который позволяет работать с большими целыми числами. Давайте рассмотрим подробности работы с большими целыми числами в JavaScript.

Создание большого целого числа

Для создания объекта BigInt необходимо добавить n к концу числового литерала или вызвать конструктор BigInt().

const bigIntNumber = 1234567890123456789012345678901234567890n;
console.log(bigIntNumber); 
// Выведет: 1234567890123456789012345678901234567890n

Ограничения

В отличие от обычных чисел, которые могут храниться в 64-битных двоичных числах с плавающей точкой, BigInt не имеет ограничений на диапазон значений. Однако, из-за особенностей реализации, BigInt не может быть использован в операциях с обычными числами.

Арифметические операции

Для выполнения арифметических операций с BigInt используются обычные операторы, но они работают только с другими BigInt или Number, преобразуя их в BigInt.

const bigInt1 = 123456789012345678901234567890n;
const bigInt2 = 987654321098765432109876543210n;

const sum = bigInt1 + bigInt2;
console.log(sum); 
// Выведет: 1111111110111111111011111111111n

Преобразование

BigInt может быть преобразован в обычное число с помощью унарного плюса или метода Number(), но при этом могут возникнуть потери точности.

const bigInt = 123456789012345678901234567890n;
const regularNumber = +bigInt;
console.log(regularNumber); 
// Выведет: 1.2345678901234568e+29

Сравнение

Сравнение BigInt происходит так же, как и сравнение обычных чисел.

const bigInt1 = 100n;
const bigInt2 = 200n;

console.log(bigInt1 < bigInt2); 
// Выведет: true

Заключение

BigInt в JavaScript предоставляет возможность работать с большими целыми числами, которые не помещаются в стандартный тип данных number. Это особенно полезно при работе с математическими операциями, которые требуют высокой точности или обработки больших чисел. Однако следует учитывать, что BigInt не поддерживает операции с обычными числами, поэтому необходимо использовать его осторожно, чтобы избежать ошибок.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile