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)
Тип ошибки
Что пошло не так?
Показатель степени операции возведения в степень должен быть положительным. Поскольку отрицательные показатели степени приводят к взятию обратного значения от основания, результат почти во всех случаях будет находиться между -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;
Смотрите также
© 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