ECMAScript 2016

JavaScript命名约定从ES1、ES2、ES3、ES5和ES6开始。

但是,ECMAScript 2016和2017并没有被称为ES7和ES8。

自2016年起,新版本按年份命名(ECMAScript 2016/2017/2018)。


ECMAScript 2016的新特性

本章讲介绍ECMAScript 2016的新特性:

  • JavaScript 求幂运算(**)

  • JavaScript 求幂赋值(**=)

  • JavaScript Array.prototype.includes


Exponentiation Operator(求幂运算)

求幂运算符(**)将第一个操作数提升到第二个操作数的幂。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>The ** Operator</h2>
  5. <p id="demo"></p>
  6. <script>
  7. let x = 5;
  8. let z = x ** 2;
  9. document.getElementById("demo").innerHTML = z;
  10. </script>
  11. </body>
  12. </html>

x**y 产生与 Math.pow(x,y)相同的结果:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>Math.pow()</h2>
  5. <p id="demo"></p>
  6. <script>
  7. let x = 5;
  8. let z = Math.pow(x, 2)
  9. document.getElementById("demo").innerHTML = z;
  10. </script>
  11. </body>
  12. </html>

Exponentiation Assignment(求幂赋值)

求幂赋值运算符(**=)将变量的值提升到右操作数的幂。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>Exponentiation Assignment (**=)</h2>
  5. <p id="demo"></p>
  6. <script>
  7. let x = 5;
  8. x **= 2;
  9. document.getElementById("demo").innerHTML = x;
  10. </script>
  11. </body>
  12. </html>

对 求幂方法 的浏览器支持

Chrome 52和Edge 14是第一个完全支持求幂运算的浏览器:

方法
includesChrome 52Edge 14Firefox 52Safari 10.1Opera 39
2016年6月2016年8月2017年3月2017年3月2016年8月

JavaScript 数组的 includes() 方法

ECMAScript 2016在数组中引入了 includes() 方法。

这允许我们检查数组中是否存在元素:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h1>数组 includes()</h1>
  5. <p>检查数组中是否存在 "芒果":</p>
  6. <p id="demo"></p>
  7. <p><strong>备注:</strong>在Edge 13(及更早版本)中不支持includes方法。</p>
  8. <script>
  9. const fruits = ["香蕉", "橘子", "苹果", "芒果"];
  10. document.getElementById("demo").innerHTML = fruits.includes("芒果");
  11. </script>
  12. </body>
  13. </html>

对 Array.prototype.includes 的浏览器支持

所有流行浏览器均支持:

方法
includesChrome 47Edge 14Firefox 43Safari 9Opera 34
2015年12月2016年8月2015年12月2015年10月2015年12月

分类导航