indexOf与includes的区别

322 阅读1分钟

在判断数组中是否存在某个数据的时候一般会用到indexOf与includes两个方法。这两个方法除了返回的结果类型不一致之外,还存在一下其他的不同。
indexOf 主要返回的是当前节点的下标,并且是严格校验类型的,但是includes在判断NaN的时候,返回true

//例子
let arr = [12,56,89,89,7,NaN]
console.log(arr.indexOf(NaN))// -1
console.log(arr.includes(NaN))// true

一般的使用场景中如果要获得当前数据的下标的时候可以选用indexOf,如果只需要判断是否存在的时候可以使用includes,但是其中NaN的场景需要了解。
所以一般在做判断的时候,indexOf的效率是比includes效率要高,因为在includes中它进行了一些额外的判断处理。