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
x ** y
产生与 Math.pow(x, y)
相同的结果:
实例
let x = 5; let z = Math.pow(x,2); // 结果是: 25
求幂赋值
幂赋值运算符 (**=
) 将变量的值提高到右操作数的幂。
实例
let x = 5; x **= 2; // 结果是 25
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
所有现代浏览器都支持 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 月 |