JS中的indexOf方法
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')); //0console.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)); //2console.log(a.indexOf('4')); //3console.log(a.indexOf(4)); //-1
可以看到array
的indexOf()
是不会进行隐式类型转换的,也就是说Array.prototype.indexOf()
底层代码在实现的时候使用的是强等于===
严格比较;
总结
- string中indexOf() 会将数值参数转换为字符再查询索引;
- number类型没有IndexOf() 可以转换为字符再使用
- array中indexOf() 是严格比较
JS中的indexOf方法相关推荐
- js中数组indexOf方法的使用和实现
js中数组indexOf方法的使用和实现 IndexOf方法定义 indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1. IndexOf方法语法 arr.inde ...
- js 中使用indexOf()方法是提示(对象不支持此属性或方法)如何解决?
1."对象不支持此属性或方法" 表示 javascript对象没有这个方法,无法调用,比如 A.B() 当A对象没有B方法的时候,会报这个异常 2.因为javascript是 脚本 ...
- ASP.NET中String.IndexOf 方法的使用
ASP.NET中String.IndexOf 方法的使用 收藏 String.IndexOf 方法 (value, [startIndex], [count]) 报告指定字符在此实例中的第一个匹配 ...
- JS中通过call方法实现继承
JS中通过call方法实现继承 原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1 ...
- JS中的Replace方法
最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处.代码如下 ...
- java script eval_「eval」js中的eval方法详解(一)–eval方法的初级应用 - seo实验室...
eval 在我看来,js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照javaScript语法进行解析并执行. 语法: eval(s); eval()方法中的参数s有多种情况.参数 ...
- JS中创建对象的方法
JS中创建对象的方法 最近手头一个项目刚完成,下一个显目还在准备中,趁这个空档期,拿起尘封多年的JS书, 重温一遍JS面向对象程序设计,然后就得出下文,算是一个总结吧. 也许,你会说 "创建 ...
- jquery中的map()方法与js中的map()方法
1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...
- js中的字符串方法与数组方法总结
js中的字符串方法与数组方法总结 1.字符串方法 2.数组方法
最新文章
- CORDIC算法——圆周系统之旋转模式
- CentOS 5.5 挂载windows ntfs 文件系统
- MySQL—数据库表的完整性约束(非外键约束)
- linux shell if -a 到-z参数含义
- docker mysql 主从配置
- 专业级的WPF条形码控件
- C++--第22课 - 类模板 - 下
- caffe 官方例程之R-CNN(物体检测)
- C语言表上作业法运输问题,论运输问题表上作业法
- python-普通数据分析-科比职业生涯数据分析
- plc c语言 软元件t,三菱plc常见软元件介绍
- 用python在大麦网抢票_大麦网抢票工具系列(一)
- 实验三 ORI指令设计实验【计算机组成原理】
- 如何截取音频片段并制作成手机铃声
- 扇贝python编程课_【扇贝编程python安卓手机下载】扇贝编程app v1.1.47 破解版-趣致软件园...
- 一流在线课程申报表公共计算机,衡阳财经业职业技术学院精品课程建设申报表.doc...
- 小米米家空气净化器2S拆解
- lol网通服务器位置,《LOL》转区系统官网网址 转区系统在哪里怎么转区
- 4.模型评估之ROC和AUC
- 佳能打印技术推动艺术品拍卖业务创新高;iQOO 9系列手机搭载Pixelworks X5 Pro视觉处理器 | 全球TMT...
热门文章
- Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)
- 区块链五-Wallet
- 转:媒体评出美国薪酬最高25家科技公司:思科居首
- 关于setTimeout的一道经典面试题
- python多项式拟合问题
- 计算机教师个人能力不足,新教师工作中的不足之处总结
- insert into 批量导入数据的案例
- 在线计算机手机中病毒 提示,手机中病毒怎么办 手机中病毒解决方法【详细介绍】...
- hp6531s闪屏门 6531s闪屏
- BigDecimal.ROUND_HALF_DOWN(五舍六入)