includes()方法用來判斷一個陣列是否包含一個指定的值,根據情況,如果包含則回傳true,否則回傳false,
indexOf()方法可回傳某個制定的字串值在字串中首次出現的位置
indexOf的一些缺點
- 語意化問題,其回傳值需要和 -1 比較,第一次使用無法直觀理解,
- 內部使用嚴格運算子 即 三等 === ,會導致對NaN的誤判,
[NaN].indexOf(NaN)
// 回傳值 -1
[NaN].includes(NaN)
// 回傳值 true
indexOf()與includes()的區別
- 輸入引數相同,且索引都可以為負值,
- 回傳值型別不同
indexOf()回傳索引值,用于判斷某一個元素在陣列或字串中首次出現的位置
includes()回傳布林值,用于判斷陣列或者字串中是否包含某一元素
3.對 NaN 處理:indexOf()不能判斷是否有NaN,而includes()可以判斷,
let arr = [NaN]
log( arr.indexOf(NaN) ) // -1
log( arr.includes(NaN) ) // true
4.對空值處理:includes()將空值判斷為 undefined,
let arr = [ , , ]
log( arr.indexOf(undefined) ) // -1
log( arr.includes(undefined) ) // true
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/504468.html
標籤:其他
