पाठ 22 / 38
स्कोप और Hoisting
वेरिएबल कहाँ रहते हैं, और क्यों कुछ अपनी लाइन से पहले भी उपयोग हो सकते हैं।
फ़ंक्शन बनाम ब्लॉक स्कोप
वेरिएबल का scope यह तय करता है कि वह कहाँ दिखता है: var घेरने वाले फ़ंक्शन तक सीमित है, जबकि let/const घेरने वाले { } ब्लॉक तक।
Hoisting
Compilation के दौरान घोषणाएँ अपने scope के ऊपर ले जाई जाती हैं — पर सिर्फ़ घोषणा, असाइनमेंट नहीं।
console.log(x); // undefined, not an error
var x = 5;
console.log(y); // ReferenceError
let y = 5;टेम्पोरल डेड ज़ोन
let/const भी hoisted होते हैं, पर अपनी लाइन चलने तक "temporal dead zone" में रहते हैं — पहले एक्सेस करने पर त्रुटि आती है।