ECMAScript 7

ES7 相比 ES6 新增的功能并没有那么多,只增加了两个新的功能

  • Array.prototype.includes

  • 指数运算符(**

Array.prototype.includes(val)

Array.prototype.includes()正式进入stage-4。用于判断 Array 实例中,是否包含某个具体的值。

const arr = [1, 2, 3];
arr.includes(1); // true
arr.includes(4); // false

Array.prototype.includes()Array.prototype.indexOf()类似,主要不同的是Array.prototype.includes()能够判断数组是否存在NaN

const arr = [NaN];
arr.includes(NaN); // true
arr.indexOf(NaN); // -1

此外,Array.prototype.includes()不区分+0-0

[-0].includes(+0); // true

指数运算符(**)

ES7 正式收入的指数运算符由 Rick Waldron 提出。

6 ** 2; // 36

在此之前,只能通过内置的Math.pow()进行指数运算

Math.pow(6, 2); // 36

扩展的运算符**=+=运算符类似

let num = 3;
num **= 2; // 9
num **= 2; // 81

指数运算符的优先级非常高,要高于*运算符

2 ** 2 * 2; // 8
2 ** (2 * 2); // 16

最后更新于