indexOf ()、includes()有何异同?

随记002: indexOf ()、includes()有何异同?

主要用途:

判断字符串或者数组中是否存在对应元素

1、数组中的includes和indexOf方法比较
  • 函数返回值
    includes(): 返回布尔类型
    indexof(): 返回的是一个整数的类型值,表示当前的值在数组中第一次出现的索引

  • 函数的第二个参数(两种方法都是可以接收两个数的)

    • indexoOf():
      第一个参数:要查找的元素;第二个参数:fromIndex从哪个索引值开始查找
      1、不传递第二个参数: 默认从0开始
      [1,2,3,4,5].indexOf(2);// 1
      
      2、传递第二个参数: 如果存在,返回对应索引值;如果不存在,返回-1
      //从索引值为2的地方开始查找值为2
      [1,2,3,4,5].indexOf(2,2);// -1
      //'-'代表需要从后往前  在这里:-1->4、-2->3......以此类推
      //从4(索引值为-1)的位置开始寻找2
      [1,2,3,4].indexOf(2,-1);// -1
      
    • includes():
       [1,2,3,4,5].includes(2,2);// false
       //从5(索引值为-1)的位置开始寻找2
       [1,2,3,4,5].includes(2,-1);// false
       //从2(索引值为-3)的位置开始寻找2
       [1,2,3,4].includes(2,-3);// true
      
  • indexOf ()和includes()区别

    • NaN的处理:
      indexoOf():不能匹配到数组中的NaN;
      includes():能匹配到数组中的NaN
      [NaN].indexOf(NaN);// -1
      [NaN].includes(NaN);// true
      
    • undefined的处理:(可以定义一个稀疏数组来进行验证)
      indexoOf(): 识别不了undefined(直接忽略)
      includes(): 能识别稀疏数组的undefined
      //前提:已经定义了一个稀疏数组 arr
      arr.indexOf(undefined);// -1
      are.includes(undefined);// true
      
    
    
2、字符串和数组中indexOf方法的比较
  • 相同点
    方法的基本调用:第一个参数:要查找的元素;第二个参数:position从哪个索引值开始查找

  • 不同点
    数据类型转换:
    如果匹配的值不是字符串,那么对于字符串的数组的indexOf()方法调用是不一致的

    字符串在执行匹配的时候:进行类型转换

    '12345'.indexOf(2);// 1
    

    数组在执行匹配的时候:严格相等匹配(===)

    ['1','2','3','4','5'].indexOf(2);// -1
    

3、字符串和数组中includes方法比较
  • 相同点
    方法的基本调用一致

  • 不同点
    数据类型转换:

    字符串在执行匹配的时候:进行类型转换

    '12345'.includes(2);// true
    

    数组在执行匹配的时候:严格相等匹配(===)

    ['1','2','3','4','5'].includes(2);// false
    
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值