indexOf与includes的比较

indexOf和includes都代表检测数组或字符串中是否包含某一个元素

其中indexOf返回的是数值类型,而includes返回的是布尔类型

var ary = [,,];
console.log(ary.indexOf(undefined))//-1
console.log(ary.includes(undefined))//true

数组中的indexOf不能判断数组中是否有NaN,而includes可以做到

var ary = [NaN];
console.log(ary.indexOf(NaN))//-1 indexOf不能判断NaN
console.log(ary.includes(NaN))//true includes可以

如果想查找某个元素在数组中的索引位置,就用indexOf

如果想查找某个元素在数组中是否存在,就用includes

 

两者都是字符串和数组共同的方法

字符串的indexOf和数组中的indexOf的比较

1 这两个方法都可以接收两个参数
2 这两个方法在没有查找的指定的字符都返回-1
3 字符串中的indexOf中的第二个参数不支持负数而数组的indexOf支持
4 字符串的indexOf在传入参数不是字符串的情况下默认会转换为字符串而数组的indexOf不会进行数据类的转换

字符串的includes和数组中的includes的比较

1 这两个方法都可以接收两个参数
2 这两个方法在没有查找的指定的字符都返回false
3 字符串中的includes中的第二个参数不支持负数而数组的includes支持
4 字符串的includes在传入参数不是字符串的情况下默认会转换为字符串而数组的includes不会进行数据类的转换

 

posted @ 2018-11-12 21:36  紫诺花开  阅读(5139)  评论(0编辑  收藏  举报