ES6 新特性之 Array.prototype.includes 方法的学习
JavaScript 是一门不断发展的语言,不断有新特性被添加进来,ES6(ECMAScript 2015)是其中一个重要的版本,其中包含了许多有用的新特性。其中一个特性是 Array.prototype.includes 方法。
在 ES5 中,我们通常使用 Array.prototype.indexOf 方法来查找数组中是否存在某个元素,并返回其索引值。但是,indexOf 方法有一些缺陷。比如,如果要查找的元素不在数组中,它会返回 -1,这样我们就无法区分真正的匹配和返回 -1 之间的差别。还有一个缺陷是,indexOf 方法不能检测 NaN 的存在。为了解决这些问题,ES6 引入了 Array.prototype.includes 方法。
Array.prototype.includes 的语法如下:
array.includes(searchElement, fromIndex)
其中,searchElement 指要查找的元素,fromIndex 指从哪个索引位置开始查找。如果省略 fromIndex,则默认从索引 0 开始查找。返回值为布尔值,表示 searchElement 是否存在于数组中。
下面是一些示例代码,以帮助你更好地理解 Array.prototype.includes 方法。
const arr = [1, 2, 3, NaN]; console.log(arr.includes(2)); // true console.log(arr.includes(NaN)); // true console.log(arr.indexOf(4) !== -1); // false console.log(arr.includes(4)); // false
从上面的示例中可以看出,arr.includes 方法能够正确地处理 NaN 的情况,并且返回真正的匹配和未匹配的区别。与此相比,indexOf 方法需要我们进行额外的检查和处理。
此外,Array.prototype.includes 方法还可以用于检查字符串中是否包含某个子字符串,例如:
const str = 'Hello, world!'; console.log(str.includes('world')); // true
总结
Array.prototype.includes 是 ES6 中一个有用的新特性,能够有效地解决 indexOf 方法的一些缺陷,并且可以用于检查数组或字符串中是否包含某个元素或子字符串。在实际应用中,我们可以尝试更多地使用这个方法,以提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/651f744c95b1f8cacd702d6b