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.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Operator: var1 ** var2
The exponentiation operator is right-associative:
a
**
b
**
c
等于
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.
In JavaScript, it is impossible to write an ambiguous exponentiation expression. That is, you cannot put a unary operator (
+/-/~/!/delete/void/typeof
) immediately before the base number; doing so will cause a SyntaxError.
-2 ** 2; // 4 in Bash, -4 in other languages. // This is invalid in JavaScript, as the operation is ambiguous. -(2 ** 2); // -4 in JavaScript and the author's intention is unambiguous.
Note that some programming languages use the caret symbol ^ for exponentiation, but JavaScript uses that symbol for the bitwise logical XOR operator .
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. |
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Exponentiation (
**
)
|
Chrome 52 | Edge 14 | Firefox 52 | IE No | Opera 39 | Safari 10.1 | WebView Android 51 | Chrome Android 52 | Firefox Android 52 | Opera Android 41 | Safari iOS 10.3 | Samsung Internet Android 6.0 |
nodejs
7.0.0
|
完整支持
不支持
用户必须明确启用此特征。