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)
上一篇 2022年7月26日 下午9:00
下一篇 2022年7月26日 下午9:16


相关推荐

  • ASP.“.NET研究”NET MVC3 on Mono的折腾(二):Linux(openSUSE)下的部署

    ASP.“.NET研究”NET MVC3 on Mono的折腾(二):Linux(openSUSE)下的部署

    2021年8月14日
    58
  • supervisor简介

    supervisor简介1 supervisor 工具基于 python 的进程管理工具 server 端是 supervisord client 端是 supervisorct 命令当应用服务器要部署多个服务程序 机器关闭 重启的批量维护 此时 supervisor 是一个不错的选择 supervisor 可以同时启动所以应用程序而不用逐个启动 Supervisor 的功能如下 1 启动 重启 关闭

    2026年3月17日
    2
  • Redis配置文件详解

    Redis配置文件详解redis是一款开源的、高性能的键-值存储(key-valuestore),和memcached类似,redis常被称作是一款key-value内存存储系统或者内存数据库,同时由于它支持丰富的数据结构,又被称为一种数据结构服务器(datastructureserver)。编译完redis,它的配置文件在源码目录下redis.conf ,将其拷贝到工作目录下即可使用,下面具体解释r

    2022年4月27日
    54
  • 透彻掌握Spring整合MyBatis的原理彻底征服面试官,建议收藏

    透彻掌握Spring整合MyBatis的原理彻底征服面试官,建议收藏  在MyBatis篇内容的最后我们来给大家详细介绍下Spring是如何整合MyBatis的。让大家彻底掌握MyBatis的底层设计原理及实现。MyBatis整合Spring原理  把MyBatis集成到Spring里面,是为了进一步简化MyBatis的使用,所以只是对MyBatis做了一些封装,并没有替换MyBatis的核心对象。也就是说:MyBatisjar包中的SqlSessionFactory、SqlSession、MapperProxy这些类都会用到。mybatis-spring.jar里

    2022年5月30日
    40
  • Linux ioctl FIONREAD 和select 使用

    Linux ioctl FIONREAD 和select 使用LinuxioctlFIONREAD和select使用使用select与ioctl判断socketclient是否断开的方式(1)ioctl+FIONREADintnsel=select(maxfd+1,&(rfds),NULL,NULL,&timeout);if(-1!=ioctl(clientfd,FIONREAD,&nread)){if(nread!=0){result=readable;}else{resul

    2022年7月23日
    15
  • 图像处理算法工程师——1必备技能总结——2面试题大全[通俗易懂]

    图像处理算法工程师——1必备技能总结——2面试题大全[通俗易懂]图像算法工程师三重境界:一、传统图像算法工程师:主要涉及图形处理,包括形态学、图像质量、相机成像之3A算法、去雾处理、颜色空间转换、滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测;二、现代图像算法工程师:涉及模式识别,主要表现的经验为Adaboost、SVM的研究与应用,特征选取与提取,包括智能驾驶的研究与应用、行人检测、人脸识别;三、人工智能时代图像算法工程师:…

    2022年5月17日
    58

发表回复

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

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