From bfd962c55f4fbabe803d0760e82ebfb5f16626ee Mon Sep 17 00:00:00 2001 From: ruanyf Date: Thu, 30 Aug 2018 13:00:50 +0800 Subject: [PATCH] =?UTF-8?q?docs(number):=20=E8=A1=A5=E5=85=85=E6=8C=87?= =?UTF-8?q?=E6=95=B0=E8=BF=90=E7=AE=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/number.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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)