Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

जावास्क्रिप्ट में ब्लॉक स्कोपिंग


परिचय

ब्लॉक स्कोप दो कर्ली ब्रेसेस { } के बीच का क्षेत्र होता है - जो लूप्स, if कंडीशन्स, स्विच स्टेटमेंट्स, या स्टैंडअलोन ब्लॉक्स में हो सकता है। ES2015 में पेश किए गए let और const हमें ब्लॉक-स्कोप्ड वेरिएबल्स बनाने की अनुमति देते हैं जिन्हें केवल उन ब्लॉक्स के अंदर एक्सेस किया जा सकता है।

उदाहरण

निम्न कोड जावास्क्रिप्ट में ब्लॉक स्कोपिंग दिखाता है:

<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>ब्लॉक स्कोपिंग</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 20px; font-weight: 500; } </style> </head> <body> <h1>जावास्क्रिप्ट में ब्लॉक स्कोपिंग</h1> <div style="color: green;" class="result"></div> <button class="Btn">यहाँ क्लिक करें</button> <h3> ब्लॉक के अंदर और बाहर वेरिएबल एक्सेस करने के लिए ऊपर दिए गए बटन पर क्लिक करें </h3> <script> const resEle = document.querySelector(".result"); document.querySelector(".Btn").addEventListener("click", () => { let b = 44; { // नया ब्लॉक स्कोप let a = 22; } resEle.innerHTML = 'अपने ब्लॉक के अंदर वेरिएबल एक्सेस करना b = ' + b + '<br>'; try { a; // ReferenceError: a is not defined } catch (err) { resEle.innerHTML += 'अपने ब्लॉक के बाहर वेरिएबल एक्सेस करना a = ' + err.message; } }); </script> </body> </html>

आउटपुट

उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा:

जावास्क्रिप्ट में ब्लॉक स्कोपिंग

'यहाँ क्लिक करें' बटन पर क्लिक करने पर:

जावास्क्रिप्ट में ब्लॉक स्कोपिंग

स्कोप तुलना

कीवर्डस्कोपहोइस्टिंगरीअसाइनमेंट
varफंक्शनहां (undefined से इनिशियलाइज़्ड)✅
letब्लॉकहां (TDZ - अनइनिशियलाइज़्ड)✅
constब्लॉकहां (TDZ - अनइनिशियलाइज़्ड)❌

टेम्पोरल डेड ज़ोन (TDZ)

let/const वेरिएबल्स अपने स्कोप की शुरुआत से लेकर घोषणा तक TDZ में होते हैं। TDZ में एक्सेस करने पर ReferenceError फेंकता है।

लूप्स में ब्लॉक स्कोप

for (let i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 100); // 0, 1, 2 प्रिंट करता है
}
// var के साथ होता: 3, 3, 3 (क्लोजर इश्यू)
  1. JavaScript WeakSet JavaScript WeakSet

    JavaScript WeakSet का उपयोग ऑब्जेक्ट्स के संग्रह को स्टोर करने के लिए किया जाता है। Set की तरह यह डुप्लिकेट स्टोर नहीं करता।WeakSet के मेथड्समेथडविवरणadd(obj)WeakSet में नया वैल्यू जोड़ता है।delete(obj)WeakSet से वैल्यू हटाता है।has(obj)True या false लौटाता है यह इस पर निर्भर करता है कि WeakSet ऑब्ज

  1. जावास्क्रिप्ट में ब्लॉक स्कोपिंग जावास्क्रिप्ट में ब्लॉक स्कोपिंग

    परिचय ब्लॉक स्कोप दो कर्ली ब्रेसेस { } के बीच का क्षेत्र होता है - जो लूप्स, if कंडीशन्स, स्विच स्टेटमेंट्स, या स्टैंडअलोन ब्लॉक्स में हो सकता है। ES2015 में पेश किए गए let और const हमें ब्लॉक-स्कोप्ड वेरिएबल्स बनाने की अनुमति देते हैं जिन्हें केवल उन ब्लॉक्स के अंदर एक्सेस किया जा सकता है। उदाहरण

  1. क्या जावास्क्रिप्ट ब्लॉक स्कोप सपोर्ट करता है? क्या जावास्क्रिप्ट ब्लॉक स्कोप सपोर्ट करता है?

    जावास्क्रिप्ट केवल उन वेरिएबल्स के लिए ब्लॉक स्कोप सपोर्ट करता है जिन्हें let या const कीवर्ड का उपयोग करके घोषित किया गया था। var का उपयोग करके घोषित वेरिएबल्स फ़ंक्शन स्कोप सपोर्ट करते हैं लेकिन ब्लॉक स्कोप नहीं। जावास्क्रिप्ट में ब्लॉक स्कोप प्रदर्शित करने का कोड निम्नलिखित है - उदाहरण <!DO