Loading lesson path
Concept visual
Start at both ends
ES6 (2015)
Before ES6 (2015), JavaScript did not have Block Scope.
Function Scope. ES6 introduced the two new JavaScript keywords:
let and const.Variables declared inside a { } block cannot be accessed from outside the block:
{
let x = 2;
}// x can NOT be used here
Inside a function all variables declared with var, let or const have
Example function myfunction() {
var x = 1;
let y = 2;
const z = 3;
}//x can NOT be used here //y can NOT be used here //z can NOT be used here
Global Scope. Variables declared with the var keyword can NOT have block scope:
Variables declared with var inside a { } block can be accessed from outside the block:
{
var x = 2;
}// x CAN be used here
Variables defined with let can not be redeclared.
You can not accidentally redeclare a variable declared with let.With let you can not do this:
let x = "John Doe";
let x = 0;
Variables defined with var can be redeclared.With var you can do this:
var x = "John Doe";
var x = 0;Redeclaring a variable using the var keyword can impose problems.Redeclaring a variable inside a block will also redeclare the variable outside the block:
var x = 10;// Here x is 10
{
var x = 2;// Here x is 2
}// Here x is 2
Redeclaring a variable using the let keyword can solve this problem.Redeclaring a variable inside a block will not redeclare the variable outside the block:
let x = 10;// Here x is 10
{
let x = 2;// Here x is 2
}// Here x is 10 Difference Between var, let and const