x-note
Search…
ECMAScript 7
ES7 相比 ES6 新增的功能并没有那么多,只增加了两个新的功能
  • Array.prototype.includes
  • 指数运算符(**

Array.prototype.includes(val)

Array.prototype.includes()正式进入stage-4。用于判断 Array 实例中,是否包含某个具体的值。
1
const arr = [1, 2, 3];
2
arr.includes(1); // true
3
arr.includes(4); // false
Copied!
Array.prototype.includes()Array.prototype.indexOf()类似,主要不同的是Array.prototype.includes()能够判断数组是否存在NaN
1
const arr = [NaN];
2
arr.includes(NaN); // true
3
arr.indexOf(NaN); // -1
Copied!
此外,Array.prototype.includes()不区分+0-0
1
[-0].includes(+0); // true
Copied!

指数运算符(**)

ES7 正式收入的指数运算符由 Rick Waldron 提出。
1
6 ** 2; // 36
Copied!
在此之前,只能通过内置的Math.pow()进行指数运算
1
Math.pow(6, 2); // 36
Copied!
扩展的运算符**=+=运算符类似
1
let num = 3;
2
num **= 2; // 9
3
num **= 2; // 81
Copied!
指数运算符的优先级非常高,要高于*运算符
1
2 ** 2 * 2; // 8
2
2 ** (2 * 2); // 16
Copied!