JavaScript Let

JavaScript let

The let keyword in JavaScript is used to declare variables with block scope. Introduced in ECMAScript 6 (ES6), let provides a more robust way to declare variables compared to the older var keyword.

1. Variable Declaration

The let keyword declares a block-scoped variable, which means the variable is only accessible within the block (enclosed in curly braces) where it is declared.

Block Scope Example

// Block Scope
{
    let blockScopedVar = 'I am block-scoped';
    console.log(blockScopedVar); // Accessible here
}
console.log(blockScopedVar); // Error: blockScopedVar is not defined

In this example, blockScopedVar is only accessible within the block where it is declared. Trying to access it outside the block results in an error.

2. Re-Declaration

Variables declared with let cannot be re-declared in the same scope. This prevents accidental re-declarations that can lead to bugs.

Re-Declaration Example

let variable = 'Initial value';
// let variable = 'New value'; // Error: Identifier 'variable' has already been declared

Attempting to re-declare variable within the same scope will result in a syntax error.

3. Temporal Dead Zone

The Temporal Dead Zone (TDZ) is a behavior in which variables declared with let cannot be accessed before their declaration in the block. This helps prevent errors related to accessing variables too early.

Temporal Dead Zone Example

console.log(tdzVar); // Error: Cannot access 'tdzVar' before initialization
let tdzVar = 'This variable is in TDZ';

In this example, trying to access tdzVar before its declaration results in a reference error due to the TDZ.