ES7(ECMAScript 2016)
ES7在ES6的基础上主要添加了两项内容:
-
Array.prototype.includes(value[, fromIndex])
includes()
方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true
,否则返回false
。var array1 = [1, 2, 3]; console.log(array1.includes(2)); //true console.log(array1.includes(2, 1)); //true console.log(array1.includes(2, 2)); //false console.log(array1.includes(4)); //false
-
求幂运算符(
**
)ES7 新增了一个指数运算符(
**
)。2 ** 2 // 4 2 ** 3 // 8
这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。
// 相当于 2 ** (3 ** 2) 2 ** 3 ** 2 // 512
指数运算符可以与等号结合,形成一个新的赋值运算符(
**=
)。let a = 1.5; a **= 2; // 等同于 a = a * a; let b = 4; b **= 3; // 等同于 b = b * b * b;
注意,V8 引擎的指数运算符与Math.pow的实现不相同,对于特别大的运算结果,两者会有细微的差异。
Math.pow(99, 99) // 3.697296376497263e+197 99 ** 99 // 3.697296376497268e+197
上面代码中,两个运算结果的最后一位有效数字是有差异的。