जावास्क्रिप्ट दें बनाम संस्करण (उदाहरण के साथ)

इस ट्यूटोरियल में, आप उदाहरणों की मदद से जावास्क्रिप्ट में let और var के बीच के अंतर के बारे में जानेंगे।

जावास्क्रिप्ट में, दोनों खोजशब्दों varऔर letचर घोषित करने के लिए उपयोग किया जाता है।

letकीवर्ड के रूप में जाना बाद में जावास्क्रिप्ट के संस्करण में पेश किया गया था ES6 (ES2015) । और यह चर घोषित करने का पसंदीदा तरीका है।

जावास्क्रिप्ट बनाम बनाम

यहाँ letऔर के बीच के अंतर का अवलोकन है var

चलो var
चलो ब्लॉक-स्कोप किया गया है। var फ़ंक्शन स्कूप किया गया है।
चलो चर को फिर से दिखाने की अनुमति नहीं देता है। var चरों को पुन: प्रसारित करने की अनुमति देता है।
उत्थापन नहीं होने देता। वर्जन में उत्थापन होता है।

जावास्क्रिप्ट को स्थानीय स्कोप में बनाम संस्करण दें

var फ़ंक्शन स्कूप किया गया है

किसी फ़ंक्शन के अंदर घोषित चर को किसी फ़ंक्शन के varभीतर कहीं भी उपयोग किया जा सकता है। उदाहरण के लिए,

 // program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello

उपरोक्त कार्यक्रम में, चर को साथ घोषित किया गया है var। चर को फंक्शन के अंदर कहीं भी इस्तेमाल किया जा सकता है greet

चलो ब्लॉक-स्कोप किया गया है

के साथ घोषित चर letकेवल कोड के एक ब्लॉक के अंदर पहुँचा जा सकता है। उदाहरण के लिए,

 // program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();

आउटपुट

 हैलो वर्ल्ड अनक्रेडेड रेफरेंस संदर्भ: b परिभाषित नहीं है

उपरोक्त कार्यक्रम में, चर को फ़ंक्शन के अंदर घोषित किया जाता है और इसे फ़ंक्शन के अंदर कहीं भी एक्सेस किया जा सकता है (एक फ़ंक्शन स्कोप हो जाता है)।

हालांकि ifब्लॉक के स्टेटमेंट के अंदर वेरिएबल बी घोषित किया गया है । b ब्लॉक-स्कोप होगा और केवल ifब्लॉक के अंदर ही पहुँचा जा सकता है ।

इसलिए जब आप ifब्लॉक के बाहर बी का उपयोग करने की कोशिश करते हैं , तो एक त्रुटि होती है (जैसा कि कार्यक्रम में ऊपर दिखाया गया है)।

नोट : किसी फ़ंक्शन के अंदर घोषित किए गए वेरिएबल्स फंक्शन स्कॉप किए जाएंगे varऔर दोनों के लिए let

चलो चर को फिर से दिखाने की अनुमति नहीं देता है

1. के साथ घोषित एक चर varफिर से redeclared किया जा सकता है। उदाहरण के लिए,

 var a = 5; // 5 var a = 3; // 3

एक चर के साथ घोषित एक letही ब्लॉक या एक ही दायरे के भीतर redeclared नहीं किया जा सकता है। उदाहरण के लिए,

 let a = 5; let a = 3; // error 

आउटपुट

 बिना सिंटैक्स ई-मेल: पहचानकर्ता 'ए' पहले ही घोषित किया जा चुका है

2. एक चर को varअलग दायरे में ब्लॉक करना या बाहरी चर का मान भी बदलना । उदाहरण के लिए,

 var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3

letकिसी भिन्न क्षेत्र या ब्लॉक के साथ एक चर को फिर से घोषित करना उस चर को एक अलग चर के रूप में मानता है। और बाहर एक चर का मूल्य नहीं बदलता है। उदाहरण के लिए,

 let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5

3. जब घोषित चर को varलूप में उपयोग किया जाता है, तो उस चर का मान बदल जाता है। उदाहरण के लिए,

 var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3

उपरोक्त कार्यक्रम में, forलूप चर को फिर से परिभाषित करता है। इसलिए मूल्य को अंत में 3 में aबदल दिया जाता है ।

जब एक चर के साथ घोषित देना एक पाश में प्रयोग किया जाता है, एक चर का मान नहीं बदलता है। उदाहरण के लिए,

 let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2

उपरोक्त कार्यक्रम में, forलूप वेरिएबल को उपरोक्त घोषित किए गए से भिन्न वेरिएबल के रूप में मानता है। और उस चर का दायरा केवल forलूप के अंदर है । इसलिए चर का मूल्य अंत में 2 रहता है ।

चलो उत्थापन की अनुमति नहीं है

के साथ घोषित चर varकार्यक्रम के दायरे के शीर्ष पर फहराए जाते हैं। उदाहरण के लिए,

 console.log(a); var a; // undefined (not an error)

कीवर्ड letको फहराने की अनुमति नहीं है। उदाहरण के लिए,

 console.log(a); let a; // Uncaught ReferenceError: a is not defined

यदि आप उत्थापन के बारे में अधिक जानना चाहते हैं, तो जावास्क्रिप्ट उत्थापन पर जाएँ।

चलो और ब्राउज़र समर्थन

अधिकांश आधुनिक ब्राउज़र इसके उपयोग का समर्थन करते हैं let। हालांकि, कुछ ब्राउज़र पूरी तरह से समर्थन नहीं करते हैं let

अधिक जानने के लिए, जावास्क्रिप्ट को ब्राउज़र का समर्थन करने दें।

नोट : वैश्विक क्षेत्र के में मामला है, दोनों varऔर letएक ही तरीके से व्यवहार करेगा। उदाहरण के लिए,

 var a = 5; // 5

वेरिएबल ग्लोबल स्कॉप्ड होगा और इसे प्रोग्राम में कहीं भी एक्सेस किया जा सकता है।

 let a = 5; // 5

वेरिएबल ग्लोबल स्कॉप्ड होगा और इसे प्रोग्राम में कहीं भी एक्सेस किया जा सकता है।

दिलचस्प लेख...