指数运算符

ES2016 新增了一个指数运算符(**)。

  1. 2 ** 2 // 4
  2. 2 ** 3 // 8

这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。

  1. // 相当于 2 ** (3 ** 2)
  2. 2 ** 3 ** 2
  3. // 512

上面代码中,首先计算的是第二个指数运算符,而不是第一个。

指数运算符可以与等号结合,形成一个新的赋值运算符(**=)。

  1. let a = 1.5;
  2. a **= 2;
  3. // 等同于 a = a * a;
  4. let b = 4;
  5. b **= 3;
  6. // 等同于 b = b * b * b;