這篇文章給大家簡單比較一下JavaScript中的includes() 和 indexOf()方法,聊聊它們有什麼差別,希望對大家有幫助!
1、基本差異
#includes()和indexOf()都是用來檢查陣列是否包含某些元素,includes()傳回值是布林值,indexOf()傳回的是索引值,如果沒有傳回-1
。 【相關推薦:javascript學習教學】
let arr = [1,2,3] arr.indexOf(0) // -1 arr.indexOf(2) // 1 arr.includes(2) // true
2、檢查NAN和undefined
#因為indexOf()是嚴格依照===運算子來做值的比較,所以indexOf()不能檢查NAN,但是includes()可以
let arr = [NaN,] arr.indexOf(NaN) // -1 arr.indexOf(undefined) // -1 arr.includes(NaN) // true arr.includes(undefined) // true
3、檢查-0和0
#includes()和indexOf()沒有區分-0和0,在判斷時,認為二者是相同的
let arr = [+0] arr.includes(-0) // true arr.indexOf(-0) // 0
4、不能檢查複雜資料型別
二者只能判斷簡單資料型別,對於物件、陣列等複雜資料型別是不可以判斷的
let arr = [{a:1},{a:2}] arr.includes({a:1}) // false arr.indexOf({a:1}) // -1
5、indexOf()可用於字串
傳回指定字元第一次出現的位置,並且存在有隱式轉換
let str = 'a1b2c3' str.indexOf('2')); //3 str.indexOf(1)); //3
更多編程相關知識,請造訪:程式設計影片! !
以上是JS中 includes() vs indexOf(),聊聊它們有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!