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

可以看到arrayindexOf()是不会进行隐式类型转换的,也就是说Array.prototype.indexOf()底层代码在实现的时候使用的是强等于=== 严格比较;

总结

  • string中indexOf() 会将数值参数转换为字符再查询索引;
  • number类型没有IndexOf() 可以转换为字符再使用
  • array中indexOf() 是严格比较

JS中的indexOf方法相关推荐

  1. js中数组indexOf方法的使用和实现

    js中数组indexOf方法的使用和实现 IndexOf方法定义 indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1. IndexOf方法语法 arr.inde ...

  2. js 中使用indexOf()方法是提示(对象不支持此属性或方法)如何解决?

    1."对象不支持此属性或方法" 表示 javascript对象没有这个方法,无法调用,比如 A.B() 当A对象没有B方法的时候,会报这个异常 2.因为javascript是 脚本 ...

  3. ASP.NET中String.IndexOf 方法的使用

      ASP.NET中String.IndexOf 方法的使用 收藏 String.IndexOf 方法 (value, [startIndex], [count]) 报告指定字符在此实例中的第一个匹配 ...

  4. JS中通过call方法实现继承

    JS中通过call方法实现继承 原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1 ...

  5. JS中的Replace方法

    最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处.代码如下 ...

  6. java script eval_「eval」js中的eval方法详解(一)–eval方法的初级应用 - seo实验室...

    eval 在我看来,js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照javaScript语法进行解析并执行. 语法: eval(s); eval()方法中的参数s有多种情况.参数 ...

  7. JS中创建对象的方法

    JS中创建对象的方法 最近手头一个项目刚完成,下一个显目还在准备中,趁这个空档期,拿起尘封多年的JS书, 重温一遍JS面向对象程序设计,然后就得出下文,算是一个总结吧. 也许,你会说 "创建 ...

  8. jquery中的map()方法与js中的map()方法

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  9. js中的字符串方法与数组方法总结

    js中的字符串方法与数组方法总结 1.字符串方法 2.数组方法

最新文章

  1. CORDIC算法——圆周系统之旋转模式
  2. CentOS 5.5 挂载windows ntfs 文件系统
  3. MySQL—数据库表的完整性约束(非外键约束)
  4. linux shell if -a 到-z参数含义
  5. docker mysql 主从配置
  6. 专业级的WPF条形码控件
  7. C++--第22课 - 类模板 - 下
  8. caffe 官方例程之R-CNN(物体检测)
  9. C语言表上作业法运输问题,论运输问题表上作业法
  10. python-普通数据分析-科比职业生涯数据分析
  11. plc c语言 软元件t,三菱plc常见软元件介绍
  12. 用python在大麦网抢票_大麦网抢票工具系列(一)
  13. 实验三 ORI指令设计实验【计算机组成原理】
  14. 如何截取音频片段并制作成手机铃声
  15. 扇贝python编程课_【扇贝编程python安卓手机下载】扇贝编程app v1.1.47 破解版-趣致软件园...
  16. 一流在线课程申报表公共计算机,衡阳财经业职业技术学院精品课程建设申报表.doc...
  17. 小米米家空气净化器2S拆解
  18. lol网通服务器位置,《LOL》转区系统官网网址 转区系统在哪里怎么转区
  19. 4.模型评估之ROC和AUC
  20. 佳能打印技术推动艺术品拍卖业务创新高;iQOO 9系列手机搭载Pixelworks X5 Pro视觉处理器 | 全球TMT...

热门文章

  1. Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)
  2. 区块链五-Wallet
  3. 转:媒体评出美国薪酬最高25家科技公司:思科居首
  4. 关于setTimeout的一道经典面试题
  5. python多项式拟合问题
  6. 计算机教师个人能力不足,新教师工作中的不足之处总结
  7. insert into 批量导入数据的案例
  8. 在线计算机手机中病毒 提示,手机中病毒怎么办 手机中病毒解决方法【详细介绍】...
  9. hp6531s闪屏门 6531s闪屏
  10. BigDecimal.ROUND_HALF_DOWN(五舍六入)