Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
RangeError: BigInt negative exponent
L'exception JavaScript"BigInt negative exponent" se produit lorsqu'une valeurBigInt est élevée à une puissance négative exprimée avec une valeurBigInt.
Dans cet article
Message
RangeError: Exponent must be positive (moteur JavaScript basé sur V8)RangeError: BigInt negative exponent (Firefox)RangeError: Negative exponent is not allowed (Safari)
Type d'erreur
Quel est le problème ?
L'exposant utilisé pour une opérationd'exponentiation doit être positif. Un exposant négatif conduirait à prendre un inverse de la base, le résultat sera alors compris entre-1 et1 pour presque tous les cas, ce qui finirait arrondi en0n. Pour éviter de tels problèmes, les exposants négatifs ne sont pas autorisés. Vérifiez le signe de l'exposant avant de réaliser l'exponentiation.
Exemples
>Utiliser un grand entier négatif comme exposant
const a = 1n;const b = -1n;const c = a ** b;// RangeError: BigInt negative exponentÀ la place, on vérifiera au préalable si l'exposant est négatif, si c'est le cas, on produira un message d'erreur plus spécifique ou on utilisera une valeur alternative comme0n ouundefined.
const a = 1n;const b = -1n;const quotient = b >= 0n ? a ** b : 0n;