# 描述
判断数组实例是否包含给定的值,返回一个布尔值。
# 参数
| 参数 | 描述 |
|---|---|
value | 必需。被检测的值 |
fromIndex | Number 类型,可选。表示搜索的起始位置,默认为 0 |
# 示例
# 基本使用
const arr = [ 1, 2, 4 ];
arr.includes(1); // true
arr.includes(3); // false
# 指定 fromIndex
const arr = [ 1, 2, 4 ];
arr.includes(2, 2);
// false
// 从索引 2 开始检测,因此是 false
arr.includes(2, 1);
// true
// 从索引 1 开始检测,结果是 true
# 边界值
# NaN 的判断
首先我们知道 NaN 不等于 NaN,无论是双等号还是全等,结果都是 false:
NaN == NaN // false
NaN === NaN // false
而 indexOf 方法内部使用绝对相等(===)进行判断,因此无法判断 NaN,但是 includes 可以:
const arr = [ 1, NaN, 2 ]
arr.indexOf(NaN)
const arr = [ 1, NaN, 4 ];
arr.indexOf(NaN); // -1
arr.includes(NaN); // true
