Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2020 г..
BigInt это встроенный объект, который предоставляет способ представлять целые числа больше 253 - 1, наибольшего числа, которое JavaScript может надёжно представить с Number примитивом. Это максимальное значение можно получить, обратившись к Number.MAX_SAFE_INTEGER.
BigInt создаётся путём добавления n в конец целочисленного литерала — 10n — или вызовом функции BigInt().
В некотором смысле он похож на Number, но отличается в некоторых ключевых моментах — его нельзя использовать с методами во встроенном объекте Math и нельзя смешивать в операциях с любыми экземплярами Number.
Предупреждение: Number и BigInt нельзя смешивать в операциях — они должны быть приведены к тому же типу.
Будьте осторожны приводя значения туда и обратно, так как точность BigInt может быть потеряна при приведении к числу (Number).
При проверке с использованием оператора typeof, BigInt выдаёт тип "bigint":
При оборачивании в объект, BigInt будет представлен как обычный объект:
Следующие операторы могут использоваться с BigInt (или объектом-обёрткой BigInt): +, *, -, **, %.
Побитовые операции также поддерживаются, кроме >>> (сдвиг вправо с заполнением нулями).
Не поддерживаемый унарный оператор (+) больше не ломает asm.js.
Оператор / также работает, как и ожидалось, с целыми числами. Однако, поскольку это BigInt, эта операция будет округляться в меньшую сторону, то есть она не будет возвращать какие-либо дробные цифры.
Предупреждение: Результат операции с дробным результатом будет округлён в меньшую сторону при использовании BigInt.
BigInt равен Number только при нестрогом сравнении.
Обычные числа и BigInt можно сравнивать как обычно.
Они могут быть смешаны в массивах и отсортированы:
Обратите внимание, что сравнения с обьектом-обёрткой BigInt действуют как с другими объектами, указывая на равенство только когда сравнивается идентичный экземпляр объекта:
BigInt ведёт себя как обычное число в следующих случаях:
Создаёт объект BigInt.
Оборачивает BigInt в пределах от -2width-1 до 2width-1-1
BigInt.asUintN()Оборачивает a BigInt в пределах от 0 до 2width-1
Возвращает строку с языкозависимым представлением числа. Переопределяет метод Object.prototype.toLocaleString().
BigInt.prototype.toString()Возвращает строку, представляющую указанный объект по указанному основанию системы счисления. Переопределяет метод Object.prototype.toString().
BigInt.prototype.valueOf()Возвращает примитивное значение указанного объекта. Переопределяет метод Object.prototype.valueOf().
Поскольку приведение между Number и BigInt может привести к потере точности, рекомендуется использовать BigInt только тогда, когда разумно ожидаются значения, превышающие 253 и не приводить между двумя типами.
Операции поддерживаемые BigInt не постоянны во времени. BigInt следовательно не пригоден для использования в криптографии.
Использование JSON.stringify() с любым значением типа BigInt приведёт к TypeError, поскольку значения BigInt не преобразуется в JSON по умолчанию, однако вы можете реализовать свой собственный метод toJSON, если вам необходимо:
Теперь вместо ошибки, JSON.stringify будет создавать строку:
| ECMAScript® 2027 Language Specification # sec-bigint-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 27 окт. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.