为什么在javascript中使用不同的“for循环”时会得到不同的结果?

为什么在javascript中使用不同的“for循环”时会得到不同的结果?,javascript,Javascript,我对js中的for loop有一个问题,下面是一些示例: 在这部分中,child是object(我想要的) 为什么循环的两种类型的得到了不同的结果? 感谢..在中,在循环中,您可以检索密钥。以下日志应与第一个循环相同: for (var child in element.childNodes) { console.log(typeof(element.childNodes[child])); } “一个for…in循环只对可枚举属性进行迭代。”签出 所述属性只是字符串,我相信它们是对象中的

我对js中的
for loop
有一个问题,下面是一些示例:

在这部分中,
child
object
(我想要的)

为什么循环的两种类型的
得到了不同的结果?

感谢..

中,在
循环中,您可以检索密钥。以下日志应与第一个循环相同:

for (var child in element.childNodes) {
  console.log(typeof(element.childNodes[child]));
}
“一个
for…in
循环只对可枚举属性进行迭代。”签出


所述属性只是字符串,我相信它们是对象中的键。

第二个循环正在键之间循环。要获得类似的结果,您需要
element.childNodes[child]
,因为
for..in
循环迭代对象的可枚举键。类似于(对象中的变量键)
。你的意思可能是
for(元素的var child.childNodes).
你应该使用
of而不是
中的
为什么不在第二个代码段中使用
for(元素的var i.childNodes){var child=element.childNodes[i];…}
模式呢?
for (var child in element.childNodes) {
        console.log(typeof(child));
}
for (var child in element.childNodes) {
  console.log(typeof(element.childNodes[child]));
}