码迷,mamicode.com
首页 > 其他好文 > 详细

indexOf与includes的区别

时间:2020-02-21 09:40:27      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:返回值   区别   存在   OLE   efi   比较   方法   undefined   无法   

自从ES6部署includes方法,好像indexOf就失去了它的用武之地了,到底indexOf有什么不足,这篇文章就要来介绍这两个方法之间的区别。

 

看一个函数,先看他们的返回值,一个是返回数值型的,一个是返回布尔型的,所以在if条件判断的时候includes要简单得多,而indexOf 需要多写一个条件进行判断。

 

var ary = [1];

if (ary.indexOf(1) !== -1) {

    console.log("数组存在1")

}

if (ary.includes(1)) {

    console.log("数组存在1")

}

 

如果数组中有NaN,你又正好需要判断数组是否有存在NaN,这时你使用indexOf是无法判断的,你必须使用includes这个方法。

 

var ary1 = [NaN];

console.log(ary1.indexOf(NaN))//-1

console.log(ary1.includes(NaN))//true

 

当数组的有空的值的时候,includes会认为空的值是undefined,而indexOf不会。

 

var ary1 = new Array(3);

console.log(ary1.indexOf(undefined));//-1

console.log(ary1.includes(undefined))//true

 

总结,到底什么时候使用includes什么时候使用indexOf还是要看情况来决定,如果你想要查找某个元素在数组中的位置,你就用indexOf,如果你只是想知道数组中是否存在某个元素,你用includes方法比较合适的。

indexOf与includes的区别

标签:返回值   区别   存在   OLE   efi   比较   方法   undefined   无法   

原文地址:https://www.cnblogs.com/ygunoil/p/12339873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!