JavaScript let
JavaScript में let
एक modern और recommended तरीका है variables को declare करने का।
ES6 (ECMAScript 2015) में इसे introduce किया गया ताकि var
की कमियों को दूर किया जा सके।
इस अध्याय में आप सीखेंगे:
let
क्या हैlet
औरvar
में फर्क- Scope, Re-declaration, और Hoisting
- Best practices
- Practical examples और अभ्यास प्रश्न
let
क्या है?
let
का उपयोग variable declare करने के लिए किया जाता है जिसकी value को बाद में बदला जा सकता है।
Syntax:
let variableName = value;
Example:
let name = "Rahul";
name = "Amit";
console.log(name); // Output: Amit
✅ आप let
से declare किया गया variable update कर सकते हैं
❌ लेकिन उसे दोबारा declare नहीं कर सकते उसी scope में
let
vs var
– मुख्य अंतर
Feature | var | let |
---|---|---|
Scope | Function-level | Block-level ({} के अंदर) |
Re-declaration | Allowed (same scope में भी) | Not Allowed (same scope में) |
Hoisting | होता है (undefined के साथ) | होता है, लेकिन access नहीं होता |
Global Object पर असर | window.varName बनता है | window.letName नहीं बनता |
🔹 Example 1: Re-declaration
var x = 10;
var x = 20; // ✅ Allowed
let y = 10;
// let y = 20; ❌ Error: Identifier 'y' has already been declared
🔹 Example 2: Block Scope
let a = 100;
{
let a = 200;
console.log("Inside block:", a); // 200
}
console.log("Outside block:", a); // 100
let
की सबसे बड़ी ताकत उसकी block scope है, जिससे variables accidentally overwrite नहीं होते।
🔹 Example 3: Hoisting Behavior
console.log(a); // ❌ ReferenceError
let a = 5;
let
hoist तो होता है, लेकिन temporal dead zone (TDZ) की वजह से आप उसे declaration से पहले access नहीं कर सकते।
क्यों let
बेहतर है?
- ✅ Scope को control करता है
- ✅ Re-declaration से बचाता है
- ✅ Clean और predictable behavior
- ❌ Old JavaScript के bugs और confusions को avoid करता है
Practical Use
let score = 0;
function updateScore(points) {
let bonus = 5;
score += points + bonus;
}
updateScore(10);
console.log(score); // Output: 15
यहाँ bonus
सिर्फ function के अंदर ही accessible है, क्योंकि यह block scope में declare हुआ है।
अभ्यास प्रश्न
let
औरvar
में क्या फर्क है? एक example दीजिए।- क्या
let
से declare किया गया variable दोबारा declare किया जा सकता है? क्यों? - नीचे दिए गए code का output बताइए:
let message = "Hello";
{
let message = "Hi";
console.log(message);
}
console.log(message);
- Temporal Dead Zone (TDZ) क्या होता है
let
के context में?
Quick Recap
Feature | Detail |
---|---|
Introduced In | ES6 (2015) |
Scope | Block-level ({} के अंदर काम करता है) |
Re-declare | ❌ Not allowed in same scope |
Re-assign | ✅ Allowed |
Hoisting | होता है लेकिन use से पहले error देता है |
Recommended | ✅ Yes, modern JavaScript में prefer करें |