BigInt.asIntN()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
BigInt.asIntN
— это статический метод, который позволяет перенести BigInt-значение в целое число со знаком между -2ширина-1 and 2ширина-1-1.
Интерактивный пример
const I64_CEIL = 2n ** 63n;
console.log(BigInt.asIntN(64, I64_CEIL - 1n));
// 9223372036854775807n (2n ** 64n - 1n, the maximum non-wrapping value)
console.log(BigInt.asIntN(64, I64_CEIL));
// -9223372036854775808n (wraps to min value)
console.log(BigInt.asIntN(64, I64_CEIL + 1n));
// -9223372036854775807n (min value + 1n)
console.log(BigInt.asIntN(64, I64_CEIL * 2n));
// 0n (wrapped around to zero)
console.log(BigInt.asIntN(64, -I64_CEIL * -42n));
// 0n (also wraps on negative multiples)
Синтаксис
BigInt.asIntN(width, bigint);
Аргументы
Возвращаемое значение
Значение bigint
по модулю 2width
как целое число со знаком.
Примеры
Пребывание в 64-битных диапазонах
Метод BigInt.asIntN()
может быть полезен, чтобы оставаться в диапазоне 64-битной арифметики.
js
const max = 2n ** (64n - 1n) - 1n;
BigInt.asIntN(64, max);
// ↪ 9223372036854775807n
BigInt.asIntN(64, max + 1n);
// ↪ -9223372036854775807n
// отрицательное число из-за переполнения
Спецификации
Specification |
---|
ECMAScript® 2025 Language Specification # sec-bigint.asintn |