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