indexOf和includes的区别

indexOf和includes相比较:

相同点:二者所传的参数是一样的,第一个参数传要判断的元素第二个参数传开始检索的下标位置两者都在数组和字符串上使用

不同点:返回值不同
indexOf:返回的是元素的所在下标,如果不存在则返回-1
优点: 元素存在可获取到元素的位置
缺点:
(1)无法判断是否有NaN的元素
(2)返回的值不够语义化,需要我们进行处理
includes:返回一个Boolean值,有:true,没有:false
优点:
(1)可判断NaN元素
(2)返回值十分语义化,不需要再次处理
缺点: 无法获取元素的下标

判断是否有NaN:

const arr = [NaN];
alert( arr.indexOf(NaN) ); // -1(应该为 0,但是严格相等 === equality 对 NaN 无效)
alert( arr.includes(NaN) );// true(这个结果是对的)

猜你喜欢

转载自blog.csdn.net/weixin_44019523/article/details/113865621