Devo usar var na construção for?
Utilizo um loop for in em um pedaço da lógica JavaScript. Devo usar a palavra-chave var ou não?
Quando executo um loop for-in conforme o exemplo do W3School, sem o var, como efeito colateral, ele é definido como uma propriedade no escopo global (janela):
(function () {
var object = {
a: 1,
b: 2
}
for (varName in object) {
alert(varName + " is" + object[varName])
}
})();
alert(window.varName) //Returns "b" !
//This returns undefined when the for-in is rewritten as for (var varName in object).
edit: aqui está um violino do código acima para sua diversão:http://jsfiddle.net/94uEh/
Qual é a forma correta preferida? - Observe que desejo oferecer suporte ao IE 8 (EcmaScript <5)