语法:str.indexOf(searchValue [, fromIndex])
1. 如果没有提供确切地提供字符串,[searchValue 会被强制设置为"undefined"]
var str = 'undefined'
var result = str.indexOf()
console.log(result)//0
fromIndex:可选
数字表示开始查找的位置。可以是任意整数,默认值为0。
2. 如果fromIndex的值小于0,那么查找从0开始
返回值:
查找的字符串searchValue的第一次出现的索引
var str = 'hello world'
var result = str.indexOf('o',-5)
console.log(result)//4 //'o'在从0开始往右的第4个位置
3. fromIndex的值大于或等于str.length,那么结果会直接返回-1,因为开始查找的位置11处,已经是这个字符串的结尾了
var str = 'hello world'
var result = str.indexOf('o',15)
console.log(result)//-1
4. 如果查找的是空字符串'',此时看fromIndex的情况,如果fromIndex值大于等于字符串的长度,将会直接返回字符串的长度
var str = 'hello world'
var result = str.indexOf('',15)
console.log(result)//11
特点:
-
严格区分大小写
-
在使用indexOf检索数组时,用‘===’去匹配,意味着会检查数据类型
什么叫严格区分大小写?举个栗子就明白了
var str = 'hello world'
var result = str.indexOf('o')//这里是小写的o
console.log(result)//4
然后再看这个
var str = 'hello world'
var result = str.indexOf('O')//这里是大写的O
console.log(result)//-1 说明未找到