RangeError: BigInt negative exponent

Die JavaScript-Ausnahme "BigInt negative exponent" tritt auf, wenn ein BigInt auf die Potenz eines negativen BigInt-Wertes erhoben wird.

Nachricht

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

Fehlertyp

Was ist schiefgelaufen?

Der Exponent einer Potenzierungsoperation muss positiv sein. Da negative Exponenten den Kehrwert der Basis nehmen würden, liegt das Ergebnis in fast allen Fällen zwischen -1 und 1, was auf 0n gerundet wird. Um Fehler zu vermeiden, sind negative Exponenten nicht erlaubt. Überprüfen Sie, ob der Exponent vor der Potenzierung nicht negativ ist.

Beispiele

Verwendung eines negativen BigInt als Exponent

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

Stattdessen sollten Sie zuerst prüfen, ob der Exponent negativ ist, und entweder mit einer besseren Fehlermeldung reagieren oder auf einen anderen Wert wie 0n oder undefined zurückgreifen.

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

Siehe auch