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
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.
const a = 1n;
const b = -1n;
const quotient = b >= 0n ? a ** b : 0n;