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 – मुख्य अंतर

Featurevarlet
ScopeFunction-levelBlock-level ({} के अंदर)
Re-declarationAllowed (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 बेहतर है?

  1. ✅ Scope को control करता है
  2. ✅ Re-declaration से बचाता है
  3. ✅ Clean और predictable behavior
  4. ❌ 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 हुआ है।


अभ्यास प्रश्न

  1. let और var में क्या फर्क है? एक example दीजिए।
  2. क्या let से declare किया गया variable दोबारा declare किया जा सकता है? क्यों?
  3. नीचे दिए गए code का output बताइए:
let message = "Hello";
{
  let message = "Hi";
  console.log(message);
}
console.log(message);
  1. Temporal Dead Zone (TDZ) क्या होता है let के context में?

Quick Recap

FeatureDetail
Introduced InES6 (2015)
ScopeBlock-level ({} के अंदर काम करता है)
Re-declare❌ Not allowed in same scope
Re-assign✅ Allowed
Hoistingहोता है लेकिन use से पहले error देता है
Recommended✅ Yes, modern JavaScript में prefer करें