4 ms·
`let` is block scoped, while `var` is function scoped. Essentially: function do_something() { if (true) { var x = 42; let y = 42;
by Mateon1 9y ago
`let` is block scoped, while `var` is function scoped.
Essentially:
function do_something() {
if (true) {
var x = 42;
let y = 42;
}
console.log(x); // 42
console.log(y); // Reference error: y is not defined
}
It's extremely useful in for loops:
for (var i = 0; i < 5; i++) {
setTimeout(function () { console.log(i); }); // => 5, 5, 5, 5, 5
}
for (let i = 0; i < 5; i++) {
setTimeout(function () { console.log(i); }); // => 0, 1, 2, 3, 4
}
- jlebrech 9y agothat makes a lot of sense, I used to just make a brand new unique variable for loops