indexOf是檢測‘字符’是否存在於一個字符串中。不存在返回 -1。存在返回對應的下標數組
var str = 'hello world'; str.indexOf('hello') // 返回的是 下標0 str.indexOf('l') //返回的是2 , 它找到第一個相等的字符時直接返回下標,後面就不查找了。
var arr = [1,2,3,4,5,6]; arr.indexOf(1) // 返回下標 0
var arr = [1,'2',3,'4','5',6]; arr.indexOf(1) //返回下標 0 ,沒有問題 arr.indexOf(2) //返回 -1 arr.indexOf(3) //返回下標 2 arr.indexOf('5') //返回下標 4 arr.indexOf(5) //返回 -1
由於 indexOf的比較不是 == 而是 === 。
=== 是比較 類型、值相不相等。2是number 類型。而arr裏面的 ‘2’ 是字符串類型的。。 沒匹配到,因此返回-1 。
咱們用 indexOf 時注意查看 類型是否相同。類型不相同就返回 -1spa