indexOf与includes的区别

1,324 阅读1分钟

在 上一篇 的 字符串去重 里使用了数组查找的方法 include

还有一个数组查找的方法是 indexOf ,使用的时候纠结了一下这两个方法的区别在哪里。

const arr = [NaN, , ]

判断NaN不一样

arr.indexOf(NaN)  //-1
arr.includes(NaN)  //true

判断 undefined 不一样

arr.indexOf(undefined)  //-1
arr.includes(undefined)  //true

总结

  • indexOf 是判断严格相等 ===
  • includes 是判断同值相等 ==

思考

在使用数组去重的时候是使用 indexOf 还是使用 includes 呢?

  • 如果我们去重的数组中不可能会出现 NaN 或 undefined时, 使用 includes 就可以了。
  • 如果我们去重的数组中可能会出现 NaN 或 undefined时, 使用 indexOf。