diff --git a/docs/number.md b/docs/number.md index 32bf4b5..a40e21b 100644 --- a/docs/number.md +++ b/docs/number.md @@ -664,6 +664,16 @@ ES2016 新增了一个指数运算符(`**`)。 2 ** 3 // 8 ``` +这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。 + +```javascript +// 相当于 2 ** (3 ** 2) +2 ** 3 ** 2 +// 512 +``` + +上面代码中,首先计算的是第二个指数运算符,而不是第一个。 + 指数运算符可以与等号结合,形成一个新的赋值运算符(`**=`)。 ```javascript @@ -676,7 +686,7 @@ b **= 3; // 等同于 b = b * b * b; ``` -注意,在 V8 引擎中,指数运算符与`Math.pow`的实现不相同,对于特别大的运算结果,两者会有细微的差异。 +注意,V8 引擎的指数运算符与`Math.pow`的实现不相同,对于特别大的运算结果,两者会有细微的差异。 ```javascript Math.pow(99, 99)