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)

questionAnswers(2)

yourAnswerToTheQuestion