JS中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

感谢各位的阅读!关于“JS中includes()和indexOf()有哪些区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


本文题目:JS中includes()和indexOf()有哪些区别
本文URL:http://ybzwz.com/article/peoecs.html