¿Debo usar var en el for en la construcción?

Hago uso de un for for loop en una pieza de lógica de JavaScript. ¿Debo usar la palabra clave var o no?

Cuando ejecuto un bucle for-in según el ejemplo de W3School, sin la var, como efecto secundario, se define como una propiedad en el ámbito global (ventana):

(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).

edición: aquí hay un violín del código anterior para su disfrute:http://jsfiddle.net/94uEh/

¿Cuál es la forma correcta, preferida? - Tenga en cuenta que deseo admitir IE 8 (EcmaScript <5)

Respuestas a la pregunta(2)

Su respuesta a la pregunta