目录
请支持本书:购买 (PDF, EPUB, MOBI)捐赠
(广告,请不要屏蔽。)

3. Array.prototype.includes

本章描述了由 Domenic Denicola 和 Rick Waldron 提出的 ECMAScript 2016 特性 “Array.prototype.includes”。

3.1 概述

> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false

3.2 数组方法 includes

数组方法 includes 具有以下签名:

Array.prototype.includes(value : any) : boolean

如果 value 是其接收器 (this) 的元素,则返回 true,否则返回 false

> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false

includesindexOf 类似——以下两个表达式基本等效:

arr.includes(x)
arr.indexOf(x) >= 0

主要区别在于 includes() 可以找到 NaN,而 indexOf() 不能。

> [NaN].includes(NaN)
true
> [NaN].indexOf(NaN)
-1

includes 不区分 +0-0这几乎是 JavaScript 的工作方式)。

> [-0].includes(+0)
true

类型化数组也将具有方法 includes()

let tarr = Uint8Array.of(12, 5, 3);
console.log(tarr.includes(5)); // true

3.3 常见问题解答

3.4 延伸阅读

下一页:4. 幂运算符 (**)