Дмитрий Нечаев
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