Spec-Zone.ru › JavaScript

RangeError: Отрицательный показатель степени BigInt

Исключение JavaScript "BigInt negative exponent" возникает, когда BigInt возводится в степень отрицательного значения BigInt.

Сообщение

RangeError: Exponent must be positive (V8-based)
RangeError: BigInt negative exponent (Firefox)
RangeError: Negative exponent is not allowed (Safari)

Тип ошибки

RangeError.

Что пошло не так?

Показатель степени операции возведения в степень должен быть положительным. Поскольку отрицательные показатели степени приводят к взятию обратного значения от основания, результат почти во всех случаях будет находиться между -1 и 1, что округляется до 0n. Во избежание ошибок отрицательные показатели степени не допускаются. Проверьте, является ли показатель степени неотрицательным, прежде чем выполнять возведение в степень.

Примеры

Использование отрицательного BigInt в качестве показателя степени

const a = 1n;
const b = -1n;
const c = a ** b;
// RangeError: BigInt negative exponent

Вместо этого сначала проверьте, является ли показатель степени отрицательным, и либо выдайте ошибку с более понятным сообщением, либо используйте другое значение, например, 0n или undefined.

const a = 1n;
const b = -1n;
const quotient = b >= 0n ? a ** b : 0n;

Смотрите также

  • BigInt
  • Возведение в степень (**)

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/BigInt_negative_exponent

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API