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


相关推荐

  • PoolBoy

    PoolBoy

    2022年1月11日
    92
  • linux查看文件权限修改记录_文件修改记录

    linux查看文件权限修改记录_文件修改记录1、从文件类型上分可分为三种,   用ls-l查询,以“一”开头的是文件,以字母“d”开头的是目录(俗称文件夹),以字母“l”开头的是连接。 2、剩下的9个分别三个为一组每一组都有四种符号组成分别是“r”,“w”,“x”,“-”。    r(read):代表读的权限    w(write):代表写的权限    x(execuite):

    2025年10月26日
    3
  • 计算机基础之补码原理

    计算机基础之补码原理首先我们都知道负数在计算机中是以补码表示的 如果不知道请看上回分解那为什么呢 要了解补码原理首先要理解算术中 模 的概念 1 模 Modulo 1 1 什么是模数 Modulararith Partofasyste wherenumbers wraparound uponreaching

    2026年3月26日
    2
  • 设计模式之代理模式XXOO

    设计模式之代理模式XXOO定义代理模式可以分为两种,一种是静态代理,一种是动态代理。静态代理:代理类一般会持有一个被代理的对象引用,且对于不关心的方法全部委托给被代理的对象处理。自己处理关心的方法。这种代理方式是死板的,它不是在运行时动态创建,它就是硬编码,你代码编译前写的是什么,编译后就是什么。换句话就是你按下CTRL+S的那一刻,就会被代理对象生成一个不可动态改变的代理类。静态代理一般对于代理的对象是单个或者多个固定的类(数量不会太多)使用。效果会比动态代理要好。动态代理:动态代理又分为JDK动

    2022年7月17日
    15
  • IPV6地址格式解析

    IPV6地址格式解析一 IPV6 地址格式 1 1 概述格式 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 冒号分 16 进制 每 4 个 16 进制数为一组 每一组可以表示 16 个二进数所以一共有 128 个二进制数 16 进制数 0 9 A F 字母大小不敏感 最终设备显示为大写每段中前面为 0 是允许的 IPV4 中不可以 00XX 00ab XXXX XXXX XXXX XXXX XXXX XXXX1 2 地址的缩写方法 如果一个段全为 0 可以缩写为一个 000AF 0000 0000 0000 X

    2026年3月16日
    3
  • OpenClaw 完整安装教程详解(2026最新版,全平台通用)

    OpenClaw 完整安装教程详解(2026最新版,全平台通用)

    2026年3月13日
    4

发表回复

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

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