जैसा कि हम जानते हैं कि जावास्क्रिप्ट में एक चर घोषित करने के लिए हमारे पास दो विकल्प हैं या तो var के साथ घोषित करें या let के साथ घोषित करें। अब सवाल यह है कि var का उपयोग कब करें और let का उपयोग कब करें यानी दोनों में प्रमुख अंतर क्या हैं।
निम्नलिखित पाठ में हम जावास्क्रिप्ट में var और let के बीच प्रमुख अंतर को जानते हैं।
लेट और वर के बीच मुख्य अंतर यह है कि लेट के साथ परिभाषित एक चर का दायरा उस ब्लॉक तक सीमित है जिसमें इसे घोषित किया जाता है जबकि var के साथ घोषित चर का वैश्विक दायरा होता है। इसलिए हम कह सकते हैं कि var एक ऐसा कीवर्ड है जो ब्लॉक स्कोप की परवाह किए बिना वैश्विक स्तर पर एक वैरिएबल को परिभाषित करता है।
लेट का दायरा न केवल उस ब्लॉक तक सीमित है जिसमें इसे परिभाषित किया गया है, बल्कि लेट के साथ वैरिएबल भी ग्लोबल विंडो ऑब्जेक्ट के साथ नहीं जुड़ता है, भले ही इसे किसी भी ब्लॉक के बाहर घोषित किया गया हो। लेकिन हम वैरिएबल को विंडो ऑब्जेक्ट से var के साथ एक्सेस कर सकते हैं यदि इसे विश्व स्तर पर परिभाषित किया गया है।
सीमित दायरे के कारण, चर का उपयोग आमतौर पर तब किया जाता है जब उन चरों का सीमित उपयोग होता है जैसे कि लूप के लिए, जबकि लूप या यदि स्थिति आदि के दायरे में होता है, जबकि var चर का उपयोग तब किया जाता है जब चर के मूल्य को कम परिवर्तन की आवश्यकता होती है और इसका उपयोग किया जाता है विश्व स्तर पर पहुँचा।
इसके अलावा, var और let के बीच एक अंतर, var के साथ परिवर्तनशील है, को किसी अन्य मान के लिए पुन:घोषित किया जा सकता है, जबकि चर को फिर से परिभाषित नहीं किया जा सकता है यदि इसे let से परिभाषित किया गया है।
var और let के बीच अंतर को दर्शाने वाला उदाहरण
let a = 'hello'; // globally scoped var b = 'world'; // globally scoped console.log(window.a); // undefined console.log(window.b); // 'world' var a = 'hello'; var a = 'world'; // No problem, 'hello' is replaced. let b = 'hello'; let b = 'world'; // SyntaxError: Identifier 'b' has already been declared