ECMAScript 2016
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
求幂运算符
幂运算符 (**
) 将第一个操作数提高到第二个操作数的幂。
示例代码:
let x = 5;
let z = x ** 2; // 结果是: 25
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>** 运算符</h1>
<p id="demo"></p>
<script>
let x = 5;
let z = x ** 2;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
运行结果:
** 运算符 25
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
x ** y
产生与 Math.pow(x, y)
相同的结果:
示例代码:
let x = 5;
let z = Math.pow(x,2); // 结果是: 25
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>Math.pow()</h1>
<p id="demo"></p>
<script>
let x = 5;
let z = Math.pow(x, 2)
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
运行结果:
Math.pow() 25
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
求幂赋值
幂赋值运算符 (**=
) 将变量的值提高到右操作数的幂。
示例代码:
let x = 5;
x **= 2; // 结果是 25
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>求幂赋值 (**=)</h1>
<p id="demo"></p>
<script>
let x = 5;
x **= 2;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
运行结果:
求幂赋值 (**=) 25
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
Chrome 52 和 Edge 14 是首个完全支持指数运算符的浏览器:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 52 | Edge 14 | Firefox 52 | Safari 10.1 | Opera 39 |
2016 年 7 月 | 2016 年 8 月 | 2017 年 3 月 | 2017 年 3 月 | 2016 年 8 月 |
JavaScript Array.includes()
ECMAScript 2016 将 Array.prototype.includes
引入数组。这允许我们检查元素是否存在于数组中:
示例代码:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.includes("Mango"); // 为 true
完整实例:
<!DOCTYPE html>
<html>
<body>
<h1>Array includes()</h1>
<p>检查 fruit 数组是否包含 "Mango":</p>
<p id="demo"></p>
<p><b>注释:</b>Edge 13(及更早版本)不支持 includes 方法。</p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.includes("Mango");
</script>
</body>
</html>
运行结果:
Array includes() 检查 fruit 数组是否包含 "Mango": true 注释:Edge 13(及更早版本)不支持 includes 方法。
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
所有现代浏览器都支持 Array.prototype.includes:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 43 | Safari 9 | Opera 34 |
2015 年 12 月 | 2016 年 8 月 | 2015 年 12 月 | 2015 年 10 月 | 2015 年 12 月 |