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