我知道什么是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 is does not log "3", "5", "7","hello"
}
Run Code Online (Sandbox Code Playgroud)
我得到的是,for... of
迭代属性值.那么为什么它不记录(返回)"3", "5", "7","hello"
而不是"3", "5", "7"
?但for... in
循环迭代每个键("0","1","2","foo").这里for... in
循环也迭代foo
密钥.但是对于...不是对foo
财产价值的迭代,即"hello"
为什么它是这样的?
简而言之:
在这里我控制台 …
我知道在C#中你使用这样的foreach:foreach string str in array1 {console.writeline(str);}
是"for each ... in"在JavaScript中也是这样使用的吗?