top | item 15378993

(no title)

Mateon1 | 8 years 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
    }

discuss

order

jlebrech|8 years ago

that makes a lot of sense, I used to just make a brand new unique variable for loops