ECMAScript 2017 (ES8) 对 Array.prototype.includes() 方法的改进

在 ECMAScript 2016 中,Array.prototype.includes() 方法被引入作为一种更加简单和优雅的方法来检查数组中是否包含某个元素。在 ECMAScript 2017 中,该方法得到了进一步改进,使其更加灵活和实用。

原有方法的不足

在 ECMAScript 2016 中,Array.prototype.includes() 方法的作用是检查数组中是否包含指定的元素,并返回布尔值。该方法的语法如下:

---------------------------- -----------

其中,searchElement 表示要查找的元素,fromIndex 表示从哪个索引位置开始查找。如果 fromIndex 参数省略,则从数组的第一个元素开始查找。

该方法的返回值为布尔值,表示数组中是否包含指定的元素。如果包含,则返回 true,否则返回 false

该方法虽然简单易用,但有一个不足之处,即无法检查数组中是否包含 NaN 元素。这是因为在 JavaScript 中,NaN 与任何值都不相等,包括它自己。因此,如果数组中包含 NaN 元素,使用 Array.prototype.includes() 方法无法检查出来。

新方法的改进

为了解决 Array.prototype.includes() 方法无法检查 NaN 元素的问题,ECMAScript 2017 中引入了一个新的方法:Array.prototype.includesNaN()。该方法的作用与 Array.prototype.includes() 相同,但可以检查数组中是否包含 NaN 元素。

该方法的语法如下:

-----------------

该方法不需要任何参数,直接调用即可。如果数组中包含 NaN 元素,则返回 true,否则返回 false

除了检查 NaN 元素之外,Array.prototype.includesNaN() 方法与 Array.prototype.includes() 方法的作用完全相同。

示例代码

下面是一个示例代码,展示了如何使用 Array.prototype.includes() 方法和 Array.prototype.includesNaN() 方法来检查数组中是否包含指定的元素和 NaN 元素。

----- --- - --- -- ---- -- ---

-- -- -------------------------- ----------------
----------------------------- -- -----
------------------------------- -- -----

-- -- ----------------------------- ----------- --- --
------------------------------- -- ----

从上面的代码可以看出,使用 Array.prototype.includes() 方法无法检查数组中是否包含 NaN 元素,而使用 Array.prototype.includesNaN() 方法可以正确地检查出来。

总结

ECMAScript 2017 中引入的 Array.prototype.includesNaN() 方法解决了 Array.prototype.includes() 方法无法检查 NaN 元素的问题。该方法的使用方式与 Array.prototype.includes() 方法完全相同,只是多了一个检查 NaN 元素的功能。在实际开发中,我们应该根据需要选择使用不同的方法来检查数组中是否包含指定的元素。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65f24d082b3ccec22fae7a22