首頁  >  文章  >  web前端  >  JS中 includes() vs indexOf(),聊聊它們有什麼差別

JS中 includes() vs indexOf(),聊聊它們有什麼差別

青灯夜游
青灯夜游轉載
2021-12-20 16:36:274815瀏覽

這篇文章給大家簡單比較一下JavaScript中的includes() 和 indexOf()方法,聊聊它們有什麼差別,希望對大家有幫助!

JS中 includes() vs 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中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除