Hoisting and Execution Context

How do closures interact with setTimeout and loop variables?
for (var i = 0; i < 3; i++) {
  setTimeout(function() { console.log(i); }, 1000);
}
Next Question (13/20)