Array的新方法includes
相对于ES6中的indexOf,基本作用是一样的,都是检查一个元素是否存在于数组中,但是它返回的是一个布尔值。
includes()作用,是查找一个值在不在数组里,若是存在则返回true,不存在返回false.
//基本用法。
let arr = ["北京","上海","广州"];
arr.includes("北京");//true
arr.includes("济南");//false
//接收两个参数:要搜索的值和搜索的开始索引。
let arr = ["北京","上海","广州"];
arr.includes("上海");//true
arr.includes("上海",1);//true
arr.includes("上海",2);//false
//与ES6中的indexOf()比较
var arr = [1, 2, 3]
var a = 1;
arr.includes(a) //true
arr.indexOf(a) //0
//只能判断简单类型的数据,对于复杂类型的数据,比如对象类型的数组,二维数组,这些,是无法判断的。
var arr = [1, [2, 3], 4]
arr.includes([2, 3]) //false
arr.indexOf([2, 3]) //-1
includes()返回的是布尔值,能直接判断数组中存不存在这个值,而indexOf()返回的是索引,这一点上前者更加方便。
两者都是采用===的操作符来作比较的,不同之处在于:对于NaN的处理结果不同。
我们知道js中 NaN === NaN 的结果是false,indexOf()也是这样处理的,但是includes()不是这样的。
let arr= [1, NaN, 2, 3]
arr.indexOf(NaN) //-1
arr.includes(NaN) //true
求幂运算符
//基本用法
3 ** 2 //9
效果同
Math.pow(3, 2) //9
//由于是运算符,所以可以和 +=一样的用法
var b = 3;
b **= 2;
console.log(b); //9