ES7

一、幂运算符

幂运算符是两个星号(**),其左侧是底数,右侧则是指数
也可以使用 Math.pow() 来获取相同结果。

let result = 5 ** 2;
console.log(result); // 25
console.log(result === Math.pow(5, 2)); // true
  • 运算符左侧不能是除了 ++ 或 -- 之外的任意一元表达式;
  • ++ 或 -- 作为前缀会在其他任意运算发生之前修改操作数,而作为后缀则会在整个表达式计算完毕后才修改操作数。
let num1 = 2,
num2 = 2;
console.log(++num1 ** 2); // 9
console.log(num1); // 3
console.log(num2-- ** 2); // 4
console.log(num2); // 1

二、Array.prototype.includes() 方法

方法接受两个参数:需要搜索的值、可选的搜索起始位置索引。
当提供了第二个参数时, includes() 会从该位置开始尝试匹配(默认的起始位置为 0 )。若在数组中找到了该值,返回 true ;否则返回 false 。例如:

let values = [1, 2, 3];
console.log(values.includes(1)); // true
console.log(values.includes(0)); // false
// 从索引 2 开始搜索
console.log(values.includes(1, 2)); // false
let values = [1, NaN, 2];
console.log(values.indexOf(NaN)); // -1
console.log(values.includes(NaN)); // true

若只想检查某个值是否存在于数组中,而不想知道它的位置,使用 includes(),这是由于 includes() 与 indexOf() 方法对于 NaN 的处理不同。而若确实想知道某个值在数组中的位置,那么就必须使用 indexOf() 方法。

三、函数作用域严格模式的改动

ES2016 规定如果函数的参数被进行解构或是拥有默认值,则在该函数内部使用 "use strict" 指令将是违法的

// 没有问题,使用了简单参数列表
function okay(first, second) {
"use strict";
return first;
}
// 语法错误
function notOkay1(first, second=first) {
"use strict";
return first;
}
// 语法错误
function notOkay2({ first, second }) {
"use strict";
return first;
}

你可能感兴趣的:(ES7)