includes() 方法检查是否数组包含某些元素,返回 true 或 false ,是ES6的方法,也可以对字符串使用
includes()方法没有区分-0和+0,需要注意
let arr = [1,2,3,4]
console.log(arr.includes(5)) // false
console.log(arr.includes(4)) // true
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置(下标)。是ES5的方法,也可以对字符串使用
indexOf() 方法对大小写敏感,需要注意
如果要检索的字符串值没有出现,则该方法返回 -1,需要注意
indexOf方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1,表达起来不够直观。二是,它内部使用严格相等运算符(===)进行判断,这会导致对NaN的误判。
includes使用的是不一样的判断算法,就没有这个问题。
let arr = [1,2,3,4]
console.log(arr.indexOf(5)) // -1
console.log(arr.indexOf(4)) // 3