Array的新方法includes
相對(duì)于ES6中的indexOf,基本作用是一樣的,都是檢查一個(gè)元素是否存在于數(shù)組中,但是它返回的是一個(gè)布爾值。
includes()作用,是查找一個(gè)值在不在數(shù)組里,若是存在則返回true,不存在返回false.
//基本用法。
let arr = ["北京","上海","廣州"];
arr.includes("北京");//true
arr.includes("濟(jì)南");//false
//接收兩個(gè)參數(shù):要搜索的值和搜索的開始索引。
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
//只能判斷簡(jiǎn)單類型的數(shù)據(jù),對(duì)于復(fù)雜類型的數(shù)據(jù),比如對(duì)象類型的數(shù)組,二維數(shù)組,這些,是無(wú)法判斷的。
var arr = [1, [2, 3], 4]
arr.includes([2, 3]) //false
arr.indexOf([2, 3]) //-1
includes()返回的是布爾值,能直接判斷數(shù)組中存不存在這個(gè)值,而indexOf()返回的是索引,這一點(diǎn)上前者更加方便。
兩者都是采用===的操作符來(lái)作比較的,不同之處在于:對(duì)于NaN的處理結(jié)果不同。
我們知道js中 NaN === NaN 的結(jié)果是false,indexOf()也是這樣處理的,但是includes()不是這樣的。
let arr= [1, NaN, 2, 3]
arr.indexOf(NaN) //-1
arr.includes(NaN) //true
求冪運(yùn)算符
//基本用法
3 ** 2 //9
效果同
Math.pow(3, 2) //9
//由于是運(yùn)算符,所以可以和 +=一樣的用法
var b = 3;
b **= 2;
console.log(b); //9