indexOf详解,几种使用情况
语法: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 说明未找到
