JavaScript Let
The let
keyword was introduced in ES6 (2015)
Variables declared with let
have Block Scope
Variables declared with let
must be Declared before use
Variables declared with let
cannot be Redeclared in the same scope
Block Scope
Before ES6 (2015), JavaScript did not have Block Scope.
JavaScript had Global Scope and Function Scope.
ES6 introduced the two new JavaScript keywords: let
and cons
t.
These two keywords provided Block Scope in JavaScript:
{
let x = 2;
}
// x can NOT be used here
Global Scope
Variables declared with thevar
always have Global Scope.
Variables declared with the var
keyword can NOT have block scope:
{
var x = 2;
}
// x CAN be used here
Cannot be Redeclared
Variables defined with let
can not be redeclared.
You can not accidentally redeclare a variable declared with let
.
let x = "John Doe";
//This is wrong
let x = 0;
var x = "John Doe";
//This is correct
var x = 0;
Redeclaring Variables
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