在MDN中,https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of,它说
for...in
循环遍历的是属性名,而for...of
循环遍历的是属性值。那么,为什么第二个for...of
没有输出"hello"呢?let arr = [3, 5, 7];
arr.foo = "hello";
for (let i in arr) {
console.log(i); // logs "0", "1", "2", "foo"
}
for (let i of arr) {
console.log(i); // logs "3", "5", "7"
}
length-1
的索引位置的属性(即使值为 undefined)。而使用 for..in 则不同,它会遍历任何可枚举的属性。 - Touffy