大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
indexOf()简介
indexOf()
是js中内置的方法之一,它的功能大家都很熟悉:简单来说就是得到数据的索引,对于正则不熟练的人,是个很不错的方法。
如果查询到返回索引,反之返回-1(固定用法);
因为indexOf()在不同类型使用的时候可能有细节性的注意点;
这里我们对不同数据类型使用IndexOf的场景进行讨论(其实就是string和array)
注:(暂不讨论两个参数时(第二个参数为查询的起始位置),以及lastIndexOf()
)
String类型使用indexOf();
String中的indexOf方法
(话不多说直接上代码,不跟你多BB)
var s = '12345';
console.log(s.indexOf(1)); //0
console.log(s.indexOf('1')); //0
console.log('----------------------------');
相信大家已经发现特点,也就是string的IndexOf()是对数据进行了隐式类型转换的,如果参数是数值它会转换为字符来进行查询然后返回索引,本质原因是什么呢,那就是 我们js底层代码中String.prototype.indexOf()
使用的是==
进行比较判断;
Number类型的IndexOf()
醒醒,Number
类型哪来的indexOf()
方法,会直接报错的好吗,
如果想对数值类型的进行查询索引,可以将数值转换为字符再进行查询,方法有很多:
– String()
– .toString()
– 与空字符’’进行+
拼接
Array类型的indexOf()
var a = [1,2,3,'4','5','6'];
console.log(a.indexOf(3)); //2
console.log(a.indexOf('4')); //3
console.log(a.indexOf(4)); //-1
可以看到array
的indexOf()
是不会进行隐式类型转换的,也就是说Array.prototype.indexOf()
底层代码在实现的时候使用的是强等于===
严格比较;
总结
- string中indexOf() 会将数值参数转换为字符再查询索引;
- number类型没有IndexOf() 可以转换为字符再使用
- array中indexOf() 是严格比较
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158304.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...