在 JavaScript 中,NaN 表示不是数字。NaN 是一种特殊的数字类型,比较它和任何一个值都不相等,甚至自己和自己也不相等。在数组中包含 NaN 时,需要小心使用数组方法来避免出现异常。
在 ES2017 (ES8) 中,Array.prototype.includes 方法被添加到 ECMA-262 标准中,它可以帮助我们避免在数组中包含 NaN 时出现异常的情况。
Array.prototype.includes 方法的用法
Array.prototype.includes 方法可以用来检查一个数组是否包含一个指定的值。它的语法如下:
arr.includes(searchElement[, fromIndex])
其中:
- searchElement,要查找的元素。
- fromIndex,开始查找的位置。如果省略,则默认从数组首位开始查找。
Array.prototype.includes 返回一个布尔值,表示搜索的元素是否在数组中找到。
示例代码
让我们看一下下面的代码,它使用 for 循环来检查一个包含 NaN 的数组:
const arr = [1, 2, NaN, 3]; for (let i = 0; i < arr.length; i++) { if (arr[i] === NaN) { console.log('找到 NaN 了'); } }
上面的代码将不会输出任何东西。为什么?因为在 JavaScript 中,NaN 不等于任何一个值,包括它自己。所以,上面的代码的 if 语句里的比较操作符永远不会成立。
使用 Array.prototype.includes 方法可以解决以上问题,代码如下:
const arr = [1, 2, NaN, 3]; if (arr.includes(NaN)) { console.log('找到 NaN 了'); }
上述代码中,方法 Array.prototype.includes 是一种简洁的避免 NaN 对数组操作产生异常的方法。
总结
在数组中包含 NaN 时,需要小心使用数组方法,因为 NaN 与任何值都不相等,包括它自己。ES2017 (ES8)中的 Array.prototype.includes 方法能够避免因与 NaN 的操作而引发的异常。熟练掌握 includes 方法的使用能够提高编程效率,减少编程中出现的错误,提高程序的鲁棒性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f92abdf6b2d6eab30bceab