लेट बनाम वार इन जावास्क्रिप्ट: डिमिस्टिफाइंग स्कोप एंड टेम्पोरल डेड जोन
ईसीएमएस्क्रिप्ट 6 में प्रस्तुत, लेट स्टेटमेंट ने डेवलपर्स के बीच भ्रम पैदा कर दिया है , विशेष रूप से यह स्थापित var कीवर्ड से किस प्रकार भिन्न है। यह लेख इन दो परिवर्तनीय घोषणाओं के बीच की बारीकियों पर प्रकाश डालता है, उनके स्कोपिंग नियमों और सर्वोत्तम उपयोग के मामलों पर प्रकाश डालता है।
स्कोप
बुनियादी अंतर उनके स्कोपिंग व्यवहार में निहित है। var के साथ घोषित वेरिएबल उस फ़ंक्शन तक ही सीमित हैं जिन्हें वे (फ़ंक्शन स्कोप) में परिभाषित करते हैं, जबकि Let वेरिएबल उस ब्लॉक तक ही सीमित हैं जो वे (ब्लॉक स्कोप) के भीतर संलग्न हैं। इसका मतलब यह है कि वेरिएबल्स का दायरा बहुत सीमित है, जिससे उन्हें उनके तत्काल ब्लॉक के बाहर परिभाषित वेरिएबल्स के साथ इंटरैक्ट करने से रोका जा सकता है।
उदाहरण:
function run() { var foo = "Foo"; let bar = "Bar"; console.log(foo, bar); // "Foo Bar" { var moo = "Mooo" let baz = "Bazz"; console.log(moo, baz); // "Mooo Bazz" } console.log(moo); // "Mooo" console.log(baz); // ReferenceError } run();
उपरोक्त उदाहरण में, var वेरिएबल moo अपने ब्लॉक के बाहर भी पहुंच योग्य रहता है, जबकि Let वेरिएबल baz अपने ब्लॉक के बाहर पहुंचने पर एक ReferenceError फेंकता है।
टेम्पोरल मृत क्षेत्र
एक अन्य अंतर अस्थायी मृत क्षेत्र (टीडीजेड) है। लेट वेरिएबल्स के लिए, घोषणा के बिंदु से लेकर जिस ब्लॉक में वे परिभाषित हैं, उसके अंत तक एक टीडीजेड मौजूद होता है। इस अवधि के दौरान, इनिशियलाइज़ेशन के बिना लेट वेरिएबल तक पहुंचने से एक रेफरेंस एरर होता है।
उदाहरण :
function test() { console.log(foo); // ReferenceError let foo = "Bar"; } test();
इस कोड में, लेट वेरिएबल foo को प्रारंभ करने से पहले एक्सेस करने से TDZ के कारण एक ReferenceError होता है।
Let बनाम Var का उपयोग कब करें
सामान्य तौर पर, वैश्विक दायरे को प्रदूषित करने और चर नाम टकराव को रोकने के लिए ब्लॉक के भीतर चर के लिए लेट का उपयोग करना पसंद करें। वार अभी भी उन वेरिएबल्स के लिए उपयोगी है जिन्हें कई ब्लॉक या फ़ंक्शंस में एक्सेस करने की आवश्यकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3