ES7 的 Array.prototype.includes 方法的运行机制及注意事项

阅读时长 2 分钟读完

简介

ES7 中新增了 Array.prototype.includes 方法,用于判断数组是否包含某个元素,返回布尔值。相比于 indexOf 方法,includes 方法更加简洁明了,代码可读性更高。

运行机制

includes 方法的运行机制比较简单,它会遍历整个数组,查找是否包含指定的元素。如果找到了,就返回 true,否则返回 false。

注意事项

1. 参数类型

includes 方法接受两个参数:要查找的元素和可选的起始位置。其中,要查找的元素可以是任意类型的值,而起始位置必须是数字类型。如果起始位置不是数字类型,则会被自动转换为数字类型。

2. 与 indexOf 方法的区别

indexOf 方法是 ES5 中的方法,用于查找数组中某个元素的位置。如果找到了,就返回该元素在数组中的索引值,否则返回 -1。而 includes 方法则更加简洁明了,只返回布尔值。此外,indexOf 方法在查找 NaN 时会有问题,而 includes 方法则没有这个问题。

3. 不会改变原数组

includes 方法不会改变原数组,只是用于判断数组中是否包含指定的元素。

4. 兼容性

由于 includes 方法是 ES7 中新增的方法,因此在一些较老的浏览器中可能不支持。不过,我们可以使用 polyfill 的方式来解决这个问题。

示例代码

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

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

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

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

总结

ES7 中的 Array.prototype.includes 方法是一个非常实用的方法,可以用于判断数组中是否包含指定的元素。需要注意的是,参数类型、与 indexOf 方法的区别、不会改变原数组以及兼容性等问题。在实际开发中,我们应该根据具体情况选择合适的方法来使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/650506cd95b1f8cacd1903d0

纠错
反馈