BigInt в jCjS — объектная обёртка над знаковым 64-битным целым числом qint64. Она сохраняет целое значение без потери точности, характерной для Number при выходе за безопасный целочисленный диапазон.
Предназначен для точной работы со значениями от −2⁶³ до 2⁶³−1, передачи 64-битных идентификаторов, счётчиков и двоичных полей, а также для работы с BigInt64Array и DataView.
BigInt(value)
Функция вызывается без new. value — десятичная строка, Number, BigInt или BigUint. Для чисел за пределами
безопасного диапазона Number обязательно используйте строку. Внутри строки допустим завершающий символ
n, однако рекомендуемая переносимая форма — BigInt("123"). Вызов с new создаёт TypeError.
// В MDN это значение создаётся из строки, чтобы не потерять точность.
var hugeString = BigInt("9007199254740991");
// В ES5 jCjS арифметика выполняется методами объекта.
var nextValue = hugeString.add(BigInt("1"));
post.log('' + nextValue.toString()); // 9007199254740992
| Сигнатура | Описание |
|---|---|
| BigInt.ZERO, ONE, MIN, MAX | Объекты-константы: ZERO = 0, ONE = 1, MIN = −9223372036854775808, MAX = 9223372036854775807. Свойства конструктора доступны только для чтения. |
| int BITS | Разрядность значения: 64. Свойство конструктора, только чтение. |
| int BYTES | Размер значения: 8 байт. Свойство конструктора, только чтение. |
не имеет
| Сигнатура | Описание |
|---|---|
| bool isBigInt(value), bool isBigUint(value) | Проверить, является ли аргумент объектом BigInt или BigUint jCjS. Методы доступны у конструктора и экземпляра. |
| BigInt add(value) | Вернуть новое значение, равное сумме текущего значения и value. |
| BigInt sub(value) | Вернуть разность текущего значения и value. |
| BigInt mul(value) | Вернуть произведение текущего значения и value. |
| BigInt div(value) | Выполнить целочисленное деление с отбрасыванием дробной части в направлении нуля. Деление на ноль создаёт RangeError. |
| BigInt mod(value) | Вернуть остаток от целочисленного деления. Деление по модулю нуля создаёт RangeError. |
| BigInt shl(bits), BigInt shr(bits) | Вернуть результат побитового сдвига влево или вправо на указанное число разрядов. Для отрицательных значений shr является знаковым сдвигом. |
| BigInt and(value), or(value), xor(value) | Вернуть результат побитового И, ИЛИ либо исключающего ИЛИ. |
| BigInt not([value]) | Инвертировать все 64 бита текущего значения; если передан value, инвертировать value. |
| bool eq(value), ne(value), lt(value), le(value), gt(value), ge(value) | Сравнить текущее значение с value: равно, не равно, меньше, меньше либо равно, больше, больше либо равно. |
| String toString(int radix = 10) | Вернуть строку в системе счисления radix от 2 до 36. При отсутствующем либо недопустимом radix используется основание 10. |
| Number|String valueOf() | Вернуть Number, если значение представимо им точно; иначе вернуть десятичную строку. |
| QVariant toVariant() | Вернуть QVariant, сохраняющий исходное знаковое 64-битное значение. |
| Number|String toJSON() | Представить значение для JSON: точное Number либо десятичная строка для большого значения. Это отличается от стандартного BigInt, для которого JSON.stringify без специальной обработки создаёт ошибку. |