为什么在 javascript 中使用带有数组迭代的"for…in"是个坏主意?
javascriptobject oriented programmingfront end technology更新于 2025/11/25 22:36:17
在 JavaScript 中使用带有数组迭代的 for..in 循环是个坏主意,因为存在以下行为 −
使用普通迭代循环 −
示例
let arr = []
arr[4] = 5
for (let i = 0; i < arr.length; i ++) {
console.log(arr[i])
}
输出
undefined undefined undefined undefined 5
如果我们使用 for in 结构迭代这个数组,我们会得到 −
示例
let arr = []
arr[4] = 5
for (let i in arr) {
console.log(arr[i])
}
输出
5
请注意,数组的长度为 5,但这仍然只会迭代数组中的一个值。
发生这种情况是因为 for-in 语句的目的是枚举对象属性。此语句将在原型链中向上移动,同时枚举继承的属性,有时这并不是我们所希望的。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

