ES7新增特性array.includes以及指数运算符

255 阅读1分钟

array.includes方法

在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf 获取结果,并且判断是否为 -1。在ES7中,我们可以通过includes来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true, 否则返回false。

案例

const names = ["abc","cba","ccc","mba",NaN]

if(names.indexOf("cba") !== -1){
    console.log("包含abc元素");
}

//ES7/ ES2016
if(names.includes("cba",2)){  //第二个参数可选,意思是从第几个开始找
    console.log("包含abc元素");
}else{
    console.log('不包含');
}


//indexOf的缺点:无法判断NaN
if(names.indexOf(NaN) !== -1){
    console.log('包含NaN'); //判断不出
}

if(names.includes(NaN)){
    console.log('包含NaN');
}

指数(乘方)exponentiation运算符

在ES7之前,计算数字的乘方需要通过 Math.pow 方法来完成,在ES7中,增加了 ** 运算符,可以对数字来计算乘方。

// 如果要计算3的立方,以前我们是这样做的

const result1 = Math.pow(3,3)
//ES7: **
const result2 = 3 ** 3
console.log(result1,result2);
console.log(result1 === result2);