Кратко
СкопированоТип большого целого 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
в средах, где используется ваш код. Так избежите неожиданных ошибок.