JavaScript Let
let is one of the keywords introduced in ECMAScript 6 (ES6) for declaring variables in JavaScript.
It differs from the older var keyword in terms of scoping and hoisting.
Here's an overview of let and its usage:
Block Scope: Unlike var, which has function scope or global scope, let has block scope. This means that variables declared with let are only accessible within the block (i.e., within curly braces {}) in which they are defined.
Example
function example() { if (true) { let x = 5; console.log(x); // Output: 5 } // console.log(x); // Error: x is not defined }
No Hoisting:
Variables declared with let are not hoisted to the top of their containing block or function. This means that you cannot access a variable before it is declared within the block.
Example
console.log(x); // Error: Cannot access 'x' before initialization let x = 5;
Reassignment:
Variables declared with let can be reassigned values just like variables declared with var.
Example
let y = 10; y = 15; console.log(y); // Output: 15
Temporal Dead Zone (TDZ):
The temporal dead zone refers to the period between entering the scope and the actual declaration being encountered. During this time, accessing the variable results in a ReferenceError.
Example
console.log(z); // Output: ReferenceError: Cannot access 'z' before initialization let z = 20;