The exponentiation operator (
**) returns the result of raising the first operand to the power of the second operand. It is equivalent to
Math.pow, except it also accepts BigInts as operands.
Operator: var1 ** var2
The exponentiation operator is right-associative:
a ** b ** c is equal to
a ** (b ** c).
In most languages, such as PHP, Python, and others that have an exponentiation operator (
**), the exponentiation operator is defined to have a higher precedence than unary operators, such as unary
+ and unary
-, but there are a few exceptions. For example, in Bash, the
** operator is defined to have a lower precedence than unary operators.
+/-/~/!/delete/void/typeof) immediately before the base number; doing so will cause a SyntaxError.
2 ** 3 // 8 3 ** 2 // 9 3 ** 2.5 // 15.588457268119896 10 ** -1 // 0.1 NaN ** 2 // NaN
2 ** 3 ** 2 // 512 2 ** (3 ** 2) // 512 (2 ** 3) ** 2 // 64
To invert the sign of the result of an exponentiation expression:
-(2 ** 2) // -4
To force the base of an exponentiation expression to be a negative number:
(-2) ** 2 // 4
|ECMAScript (ECMA-262) |
The definition of 'Exponentiation operator' in that specification.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.