Here babel transpile let into var, how the javascript runtime know it should depend on block scope.
code:
for(let i=10; i<11; i++){
console.log(12);
}
babel compiles it into:
"use strict";
for (var i = 10; i < 11; i++) {
console.log(12);
}
I used the try it out and choose es2015 on babel homepage.