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(求幂运算)
求幂运算符(**)将第一个操作数提升到第二个操作数的幂。
<!DOCTYPE html>
<html>
<body>
<h2>The ** Operator</h2>
<p id="demo"></p>
<script>
let x = 5;
let z = x ** 2;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
x**y 产生与 Math.pow(x,y)相同的结果:
<!DOCTYPE html>
<html>
<body>
<h2>Math.pow()</h2>
<p id="demo"></p>
<script>
let x = 5;
let z = Math.pow(x, 2)
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Exponentiation Assignment(求幂赋值)
求幂赋值运算符(**=)将变量的值提升到右操作数的幂。
<!DOCTYPE html>
<html>
<body>
<h2>Exponentiation Assignment (**=)</h2>
<p id="demo"></p>
<script>
let x = 5;
x **= 2;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
对 求幂方法 的浏览器支持
Chrome 52和Edge 14是第一个完全支持求幂运算的浏览器:
方法 | |||||
---|---|---|---|---|---|
includes | Chrome 52 | Edge 14 | Firefox 52 | Safari 10.1 | Opera 39 |
2016年6月 | 2016年8月 | 2017年3月 | 2017年3月 | 2016年8月 |
JavaScript 数组的 includes() 方法
ECMAScript 2016在数组中引入了 includes() 方法。
这允许我们检查数组中是否存在元素:
<!DOCTYPE html>
<html>
<body>
<h1>数组 includes()</h1>
<p>检查数组中是否存在 "芒果":</p>
<p id="demo"></p>
<p><strong>备注:</strong>在Edge 13(及更早版本)中不支持includes方法。</p>
<script>
const fruits = ["香蕉", "橘子", "苹果", "芒果"];
document.getElementById("demo").innerHTML = fruits.includes("芒果");
</script>
</body>
</html>
对 Array.prototype.includes 的浏览器支持
所有流行浏览器均支持:
方法 | |||||
---|---|---|---|---|---|
includes | Chrome 47 | Edge 14 | Firefox 43 | Safari 9 | Opera 34 |
2015年12月 | 2016年8月 | 2015年12月 | 2015年10月 | 2015年12月 |