HELLO,大家好,今天跟大家分享一下indexOf方法的知识,这个方法虽然简单,但是也有一些细节需要注意
首先介绍一个这个方法,它返回调用对象第一次出现的指定值的索引。如果没有找到,则返回-1
先演示下最基本的用法
let str = '01234567';
let index;
let index2;
index = = str.indexOf('0');
console.log('索引值是',index);
console.log('索引值是',index2);
可以看到输出的索引值是0,
它还有第二个参数,表示从某个索引开始查找
index = str.indexOf('0',1);
console.log('索引值是',index);
这时候输出就是-1了,这个时候它从索引为1处开始查找,自然就找不到这个字符串了
当第二个参数小于0时,那么会被替换成0,也就是说第二个参数最小值是0
index = str.indexOf('0',-1); // 0
当第二个参数大于最大索引时,总会返回-1
index = str.indexOf('0',8);// -1
index2 = str.indexOf('0',18); // -1
接下说一下这两个参数的特殊情况
- 如果没有提供要查找的字符串,那么就会默认传递这个字符串'undefined',来演示一下
index = 'undefined'.indexOf();// 0
实际上等同于
index = 'undefined'.indexOf('undefined');// 0
2.如果第一个参数是空字符串,第二个参数大于调用对象的最大索引值时,会返回调用对象的length
index = str.indexOf('',8); // 8
index2 = str.indexOf('',18);// 8