當使用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