当使用for..in
构造循环JavaScript对象时,我偶然发现了这个令人费解的错误。我有一组的虚拟数据与此类似:JavaScript内部变量undefined For循环中
{
"12345678" : {
...
},
"12345679" : {
...
},
"12345680" : {
...
}
}
也许它很重要,这个目的是从火力地堡数据库使用检索到的响应的内置.val()
方法。这是一个普通的js对象。
但是,在遍历对象时,内部的内部的for..in
循环在某种程度上未定义。我已经删除除循环中的所有周围的代码,并且仍然出现错误:
for (key in data) {
console.log(data[key]);
}
// Throws ReferenceError: key is not defined
我真是百思不得其解。这怎么可能?我认为传递给for..in
的变量在循环内总是可用(或至少定义)。
你是否在某处定义了'key'?像'for(var key in data)'?另外,你是否尝试用'JSON.stringify(data,null,4)'这样的东西打印'data'? – mc10
嗯,那很愚蠢。没有在任何地方声明为'var'。我一直在这半个小时左右都在搞这个。我想是时候睡觉了。 – ppajer