最佳答案
我知道什么是for... in
循环(它迭代键),但我第一次听说for... of
(它迭代值)。
我对for... of
循环感到困惑。
var arr = [3, 5, 7];arr.foo = "hello";
for (var i in arr) {console.log(i); // logs "0", "1", "2", "foo"}
for (var i of arr) {console.log(i); // logs "3", "5", "7"// it doesn't log "3", "5", "7", "hello"}
我知道for... of
迭代属性值。那为什么它不记录"3", "5", "7", "hello"
而不是"3", "5", "7"
?
与for... in
循环不同,它迭代每个键("0", "1", "2", "foo"
)并迭代foo
键,for... of
不要迭代foo
属性的值,即"hello"
。为什么会这样?
这里我控制台for... of
循环。它应该记录"3", "5", "7","hello"
,但它记录"3", "5", "7"
。为什么?