加入收藏 | 设为首页 | 会员中心 | 我要投稿 烟台站长网 (https://www.0535zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

JS中的includes和indexOf的差别是啥,有哪些?

发布时间:2022-02-08 14:24:57 所属栏目:语言 来源:互联网
导读:JS中的includes和indexOf的区别是啥,有哪些?因为includes()和indexOf()都能用来检查数组是否包含某些元素,所以有一些朋友不是很理解JS中的includes()和indexOf()方法的区别,对此这篇就给大家来详细的讲讲,感兴趣的朋友就继续往下看吧。 1、基本区别 inc
      JS中的includes和indexOf的区别是啥,有哪些?因为includes()和indexOf()都能用来检查数组是否包含某些元素,所以有一些朋友不是很理解JS中的includes()和indexOf()方法的区别,对此这篇就给大家来详细的讲讲,感兴趣的朋友就继续往下看吧。
 
      1、基本区别
 
       includes()和indexOf()都是用来检查数组是否包含某些元素,includes()返回值是布尔值,indexOf()返回的是索引值,如果没有返回-1。
 
let arr = [1,2,3]
arr.indexOf(0) // -1
arr.indexOf(2) // 1
arr.includes(2) // true
    2、检查NAN和undefined
 
      因为indexOf()是严格按照===操作符来做值的比较,所以indexOf()不能检查NAN,但是includes()可以
 
let arr = [NaN,]
arr.indexOf(NaN) // -1
arr.indexOf(undefined) // -1
arr.includes(NaN) // true
arr.includes(undefined) // true
    3、检查-0和+0
 
includes()和indexOf()没有区分-0和+0,在判断时,认为二者是相同的
 
let arr = [+0]
arr.includes(-0) // true
arr.indexOf(-0) // 0
    4、不能检查复杂数据类型
 
二者只能判断简单数据类型,对于对象、数组等复杂数据类型是不可以判断的
 
let arr = [{a:1},{a:2}]
arr.includes({a:1}) // false
arr.indexOf({a:1}) // -1
    5、indexOf()可用于字符串
 
返回指定字符第一次出现的位置,并且存在有隐式转换
 
let str = 'a1b2c3'
str.indexOf('2')); //3
str.indexOf(1)); //3

(编辑:烟台站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读