ES6 New Features: let
The let keyword declares a block-scoped local variable,
instead of a global variable (like var).
for (var i = 0; i < 3; i++) setTimeout(() => console.log(i), 0); // 3 3 3
for (let i = 0; i < 3; i++) setTimeout(() => console.log(i), 0); // 0 1 2