जावास्क्रिप्ट चलो
let
कीवर्ड
ES6 (2015) में पेश किया गया था ।
के साथ परिभाषित चर को let
फिर से घोषित नहीं किया जा सकता है।
के साथ परिभाषित चर let
उपयोग से पहले घोषित किए जाने चाहिए।
वेरिएबल के साथ परिभाषित किया गया है जिसमें let
ब्लॉक स्कोप है।
पुन: घोषित नहीं किया जा सकता
के साथ परिभाषित चर को फिर से घोषितlet
नहीं किया जा सकता है ।
आप गलती से एक चर को फिर से घोषित नहीं कर सकते।
आप के साथ let
ऐसा नहीं कर सकते:
उदाहरण
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
आप के साथ var
कर सकते हैं:
उदाहरण
var x = "John Doe";
var x = 0;
ब्लॉक स्कोप
ES6 (2015) से पहले, JavaScript के पास केवल Global Scope और Function Scope था ।
ES6 ने दो महत्वपूर्ण नए JavaScript कीवर्ड पेश किए: let
और const
.
ये दो कीवर्ड जावास्क्रिप्ट में ब्लॉक स्कोप प्रदान करते हैं।
{ } ब्लॉक के अंदर घोषित वेरिएबल को ब्लॉक के बाहर से एक्सेस नहीं किया जा सकता है:
उदाहरण
{
let x = 2;
}
// x can NOT be used here
कीवर्ड के साथ घोषित वेरिएबल्स var
में ब्लॉक स्कोप नहीं हो सकता है।
{ } ब्लॉक के अंदर घोषित वैरिएबल को ब्लॉक के बाहर से एक्सेस किया जा सकता है।
उदाहरण
{
var x = 2;
}
// x CAN be used here
पुन: घोषित चर
कीवर्ड का उपयोग करके एक वेरिएबल को फिर से घोषित करने से var
समस्याएँ हो सकती हैं।
एक ब्लॉक के अंदर एक वेरिएबल को फिर से घोषित करने से ब्लॉक के बाहर वेरिएबल को फिर से घोषित किया जाएगा:
उदाहरण
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
कीवर्ड का उपयोग करके एक चर को फिर से घोषित करना let
इस समस्या को हल कर सकता है।
किसी ब्लॉक के अंदर एक वेरिएबल को फिर से घोषित करने से ब्लॉक के बाहर वेरिएबल को फिर से घोषित नहीं किया जाएगा:
उदाहरण
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
ब्राउज़र समर्थन
इंटरनेट एक्सप्लोरर 11 या इससे पहले के संस्करण में let
कीवर्ड पूरी तरह से समर्थित नहीं है।
let
निम्न तालिका खोजशब्द के लिए पूर्ण समर्थन के साथ पहले ब्राउज़र संस्करणों को परिभाषित करती है :
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
पुनर्घोषणा
var
किसी प्रोग्राम में कहीं भी JavaScript वैरिएबल को फिर से घोषित करने की अनुमति है:
उदाहरण
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
साथ let
में, एक ही ब्लॉक में एक वेरिएबल को फिर से घोषित करने की अनुमति नहीं है:
उदाहरण
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
let
किसी अन्य ब्लॉक में , के साथ एक चर को पुन: घोषित करने की अनुमति है:
उदाहरण
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
उत्थापन करने दें
के साथ परिभाषित चर शीर्ष पर फहराएvar
जाते हैं और किसी भी समय प्रारंभ किए जा सकते हैं।
अर्थ: घोषित होने से पहले आप चर का उपयोग कर सकते हैं:
उदाहरण
यह ठीक है:
carName = "Volvo";
var carName;
यदि आप उत्थापन के बारे में अधिक जानना चाहते हैं, तो जावास्क्रिप्ट उत्थापन अध्याय का अध्ययन करें ।
के साथ परिभाषित चर let
भी ब्लॉक के शीर्ष पर फहराए जाते हैं, लेकिन प्रारंभ नहीं होते हैं।
अर्थ: let
घोषित होने से पहले एक चर का उपयोग करने का परिणाम होगा
ReferenceError
:
उदाहरण
carName = "Saab";
let carName = "Volvo";