ES6 for Everyone
A thorough overview of ES6
01 - var scoping refresher
var
variables are reassignable. You can also use var
twice for the same variable name in the same scope. var
variables are function scoped and if they're not in a function then they are globally available. var
variables leak to the global scope fairly easily.
let
is block scoped which protects the global scope.
var age = 100;
if (age > 12) {
const dogYears2 = 79;
let dogYears = 7;
var foobar = 3;
console.log(dogYears2); // result is 79
console.log(dogYears); // result is 7
console.log(foobar); // result is 3
}
console.log(dogYears2); // variable is undefined because dogYears2 is block scoped
console.log(dogYears); // variable is undefined because dogYears is block scoped
console.log(foobar); // result is 3. It affected the global scope
02 - let vs const
Using let
and const
you can only declare them once in the same scope.
let winner = false;
if (true) {
let winner = true;
}
console.log(winner); // winner is false because the winner inside of the if and outside are two different variables
let winner = false;
if (true) {
winner = true;
}
console.log(winner); // winner is true because the winner inside of the if updated the winner outside of it