JS中的indexOf方法

JS中的indexOf方法indexOf()简介indexOf是js中内置的方法之一,它能

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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 

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

总结

  • string中indexOf() 会将数值参数转换为字符再查询索引;
  • number类型没有IndexOf() 可以转换为字符再使用
  • array中indexOf() 是严格比较
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java –IO流

    java –IO流

    2021年10月2日
    43
  • 目标检测ssd算法实践教程_目标检测算法有哪些

    目标检测ssd算法实践教程_目标检测算法有哪些目录一、背景(基本介绍)二、网络结构三、具体过程1.defaultbox匹配2.损失函数3.数据增广4.AtrousAlgothrim5.NMS(非极大值抑制)五、性能评估优点:缺点:SSD算法的改进:DSSD1.DSSD网络结构图19VGG网络与ResNet网络的对比2.实现细节3.训练…

    2022年10月10日
    3
  • 分析开源项目[通俗易懂]

    分析开源项目[通俗易懂]手把手教你分析开源项目不知道代码怎么来的?代码跑不起来?项目对自己有帮助,不会模块化分析?任何一个开源项目,都可以让自己得到提升!这里以EL-ADMIN为例https://el-admin.vip/1、观察开源项目后端代码:前端代码:2、开源项目下载可使用zip下载,或者Git观察:用了哪些技术(springboot,vue,redis,)是否有数据库(mysql)你的环境是否匹配(Java,Maven,npm,nodejs,)通过了,然后再想办法运行3、跑

    2022年6月11日
    42
  • EasyPlayer视频源切换

    EasyPlayer视频源切换EasyPlayer现在支持多视频源快速切换了,我们介绍一下是如何实现的.这个需求通常应用在一个客户端需要查看多个视频源的情况,比如多个监控场景轮播.由于EasyPlayer的播放端已经放在Fragment了,这使得SDK层可以对好多应用层的代码做以封装,这样尽可能给开发者带来方便.比如,两个视频源切换的时候,只需要创建两个PlayFragment,然后对这两个Fragment进行显示切换,如代

    2022年6月17日
    36
  • IntelliJ IDEA添加注释常用的快捷键[通俗易懂]

    IntelliJ IDEA添加注释常用的快捷键[通俗易懂]IDEA可以使用快捷键添加行注释Ctrl+/、块注释Ctrl+Shift+/,还可以快速生成类注释、方法注释等,下面就介绍这几种快捷键的用法.[1]行注释Ctrl+/首先你的光标要处于这一行,处于这行的哪个位置都可以,按Ctrl+/,就可以往行首添加"//",将该行注释掉。再次按Ctrl+/,可以去掉该行注释。[2]块注释Ctrl+Shift+/使用块注释需要先选中要注释的…

    2022年8月15日
    8
  • django url标签_正确的url格式

    django url标签_正确的url格式前言当我们访问网页的时候,后台返回列表中有n条数据,此时我们会使用分页,比如一页只展示10条,但是我们访问第一页的时候大多数情况下,都会给url一个默认值,访问的时候直接展示第一页数据案例我们的

    2022年7月28日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号