includes方法属于ES7。
与indexOf比较
- indexOf方法:如果存在要查找的值,会返回索引下标,如果不存在会返回-1;
- 其内部使用的是严格等式运算符(===)进行判断,会导致对NaN的误判(因为NaN === NaN会返回false,如果数组中存在该元素,则无法找到)。
例子:
//indexOf
[1, 2, 3].indexOf(2); // 1
[1, 2, 3].indexOf(4); // -1
[1, 2, NaN].indexOf(NaN); // -1
//includes
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true
本文探讨了ES7中的includes方法与indexOf方法的区别。indexOf在找不到匹配值时返回-1,而使用严格等式运算符可能导致对NaN的误判。includes方法解决了这个问题,能正确识别数组中的NaN。示例展示了includes在处理包含NaN的数组时返回正确的布尔值。
2083

被折叠的 条评论
为什么被折叠?



