为什么在数组迭代中使用“ for…in”是JavaScript中的一个坏主意?
在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
如果我们使用forin构造在此数组上进行迭代,那么我们将获得-
示例
let arr = []
arr[4] = 5
for (let i in arr) {
console.log(arr[i])
}输出结果
5
请注意,数组的长度为5,但这仍会迭代数组中的一个值。
发生这种情况是因为for-in语句的目的是枚举对象属性。该语句将出现在原型链中,还会枚举继承的属性,这有时是不希望的。
热门推荐
8 敏字的祝福语简短
10 给儿子生日祝福语 简短
11 工人生日祝福语简短
12 侄儿生日祝福语简短独特
13 恋爱祝福语大全简短搞笑
14 对同事简短生日祝福语
15 生日祝福语简短搞笑女儿
16 中班入学祝福语简短大全
17 哥哥结婚的祝福语简短
18 哥哥祝福语简短霸气句子