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 月