Кратко
СкопированоТип большого целого Big — примитивный тип, который представляет целые числа больше 253-1. Эти числа уже не помещаются в стандартный примитив «число».
Этот тип используют для работы с произвольно большими целыми числами: идентификаторами, криптографическими ключами и другими данными, где требуется высокая точность.
Как пишется
СкопированоСоздать Big можно двумя способами.
1️⃣ Добавить суффикс n в конец записи числа:
const biggy = 9997000254740991n
const biggy = 9997000254740991n
2️⃣ Вызвать конструктор Big:
const alsoBig = BigInt(9997000254999999)
const alsoBig = BigInt(9997000254999999)
Big поддерживает, например, операции сложения +, вычитания -, умножения *, взятия остатка от деления %, возведения в степень **.
Операция деления / также работает, но дробная часть отбросится:
const seven = 7nconst five = 5nconsole.log(seven / five)// 1
const seven = 7n
const five = 5n
console.log(seven / five)
// 1
Преобразование типов
СкопированоВ операциях Big невозможно использовать напрямую с обычными числами типа number: это приведёт к ошибке.
const biggy = 10nconst number = 5console.log(biggy + number)// Uncaught TypeError: Cannot mix BigInt and other types,// use explicit conversions
const biggy = 10n
const number = 5
console.log(biggy + number)
// Uncaught TypeError: Cannot mix BigInt and other types,
// use explicit conversions
Чтобы провести операции между Big и обычными числами, их нужно явно преобразовать. Например:
const biggy = 10nconst number = 5console.log(biggy + BigInt(number))// 15nconsole.log(Number(biggy) + number)// 15
const biggy = 10n
const number = 5
console.log(biggy + BigInt(number))
// 15n
console.log(Number(biggy) + number)
// 15
Ограничения
СкопированоНет поддержки дробных чисел. Big работает только с целыми числами. Дробные числа нельзя использовать с этим типом данных.
Ограниченная поддержка в браузерах. Хотя Big поддерживается большинством браузеров, старые версии могут не поддерживать этот тип.
В Big не поддерживаются операции унарного плюса и сдвига битов вправо.
Подсказки
Скопировано💡 Используйте Big, когда работаете с числами, которые превышают максимальное безопасное целое значение в JavaScript — 253-1.
💡 Продолжайте использовать тип number для стандартных вычислений с небольшими числами. Этот тип занимает меньше памяти и более эффективен в операциях.
💡 Проверяйте поддержку Big в средах, где используется ваш код. Так избежите неожиданных ошибок.