Exponentiation (**)
L'opérateur d'exponentiation (**
) fournit le résultat obtenu lorsqu'on élève le premier opérande à la puissance indiquée par le second. Il est équivalent Math.pow
exception faite que cet opérateur permet également d'utiliser des valeurs BigInt comme opérandes.
Exemple interactif
Syntaxe
Opérateur: var1 ** var2;
Description
L'opérateur d'exponentiation est associatif à droite : a ** b ** c
est équivalent à a ** (b ** c)
.
Pour la plupart des langages possédant un opérateur d'exponentiation (ex. PHP, Python, etc.), l'opérateur d'exponentiation possède une précédence plus élevée que les opérateurs unaires (comme l'addition unaire +
ou la soustraction unaire -
). Il existe toutefois quelques exceptions comme Bash, où **
possède une précédence inférieure à celles des opérateurs unaires.
En JavaScript, il est impossible d'écrire une expression d'exponentiation ambigüe : on ne peut pas placer un opérateur unaire (+/-/~/!/delete/void/typeof
) avant le nombre servant de base, cela provoquera une exception SyntaxError
.
-2 ** 2;
// 4 en Bash, -4 pour d'autres langages.
// Invalide en JavaScript car l'opération est ambigüe.
-(2 ** 2);
// -4 en JavaScript, les parenthèses évitent l'ambiguité.
Attnetion, certains langages de programmation utilisent l'accent circonflexe ^ pour exprimer l'exponentiaion mais JavaScript utilise ce symbole pour l'opérateur binaire OU exclusif (XOR).
Exemples
Exponentiation simple
2 ** 3; // 8
3 ** 2; // 9
3 ** 2.5; // 15.588457268119896
10 ** -1; // 0.1
NaN ** 2; // NaN
Associativité
2 ** 3 ** 2; // 512
2 ** (3 ** 2); // 512
(2 ** 3) ** 2; // 64
Avec les opérateurs unaires
Pour prendre l'opposé du résultat :
-(2 ** 2); // -4
Pour forcer le signe de la base en négatif :
(-2) ** 2; // 4
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-exp-operator |
Compatibilité des navigateurs
BCD tables only load in the browser