जेसक्रिप्ट लेट
- पिछला पृष्ठ JS वेरियेबल
- अगला पृष्ठ JS Const
ECMAScript 2015
ECMAScript 2015 में दो महत्वपूर्ण JavaScript नए कीवर्ड शामिल किए गए हैं:let
और const
.
ये दो कीवर्ड JavaScript में ब्लॉक स्कोप प्रदान करते हैं (Block Scope)वारियबल (और स्थायी)।
ES2015 के पहले, JavaScript में केवल दो प्रकार के स्कोप हैं:वैश्विक क्षेत्रऔरफ़ंक्शन क्षेत्र.
वैश्विक क्षेत्र
वैश्विक(फ़ंक्शन के बाहर)घोषित वारियबल कोवैश्विक क्षेत्र.
इंस्टेंस
var carName = "porsche"; // यहाँ के कोड में carName का उपयोग किया जा सकता है function myFunction() { // यहाँ के कोड में भी carName का उपयोग किया जा सकता है }
वैश्विकवारियबल JavaScript के कार्यक्रम के किसी भी स्थान पर देखा जा सकता है。
फ़ंक्शन क्षेत्र
स्थानीय(फ़ंक्शन में)घोषित वारियबल कोफ़ंक्शन क्षेत्र.
इंस्टेंस
// यहाँ के कोड में carName का उपयोग नहीं किया जा सकता function myFunction() { var carName = "porsche"; // code here CAN use carName } // यहाँ के कोड में carName का उपयोग नहीं किया जा सकता
स्थानीयवारियबल केवल उस फ़ंक्शन के अंदर ही देखा जा सकते हैं जहाँ वे घोषित किए गए हैं
JavaScript ब्लॉक स्कोप
द्वारा var
कीवर्ड घोषित करने वाले वारियबलों को ब्लॉक स्कोप नहीं हैस्कोप.
ब्लॉक में {} ब्लॉक में घोषित वारियबल बाहरी ब्लॉक से देखा जा सकता है。
इंस्टेंस
{ var x = 10; } // यहाँ x का उपयोग किया जा सकता है
ES2015 के पहले, JavaScript में ब्लॉक स्कोप नहीं था
स्कोप का उपयोग कर सकते हैं let
कीवर्ड घोषित करने वाले वारियबलों को ब्लॉक रूपरेखा के अधीन हैं。
ब्लॉक में {} ब्लॉक में घोषित वारियबल बाहरी ब्लॉक से नहीं अद्यतन किया जा सकता:
इंस्टेंस
{ let x = 10; } // यहाँ x का उपयोग नहीं किया जा सकता
वारियबल दोहरी घोषित करना
का उपयोग करना var
कीवर्ड दोहरी घोषित करने से समस्या उत्पन्न हो सकती है。
ब्लॉक में फिर से वारियबल को घोषित करने से बाहरी ब्लॉक के वारियबल को भी दोहरी बार घोषित किया जाएगा:
इंस्टेंस
var x = 10; // यहाँ x 10 है { var x = 6; // यहाँ x 6 है } // यहाँ x 6 है
का उपयोग करना let
कीवर्ड दोहरी घोषित करने से यह समस्या का समाधान किया जा सकता है。
ब्लॉक में फिर से वारियबल को दोहरी बार घोषित करने से बाहरी ब्लॉक के वारियबल को नहीं दोहरी बार घोषित नहीं किया जाएगा:
इंस्टेंस
var x = 10; // यहाँ x 10 है { let x = 6; // यहाँ x 6 है } // यहाँ x 10 है
ब्राउज़र समर्थन
Internet Explorer 11 या उससे पहले के संस्करण पूरी तरह से समर्थित नहीं हैं let
कीवर्ड निर्वचित किया गया है:
नीचे दिए गए तालिका में पहला पूरी तरह से समर्थित let
कीवर्ड के ब्राउज़र संस्करण:
Chrome 49 | IE / Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
2016 मार्च | 2015 जुलाई | 2015 जनवरी | 2017 सितंबर | 2016 मार्च |
लूप क्षेत्र
लूप में उपयोग var
:
इंस्टेंस
var i = 7; for (var i = 0; i < 10; i++) { // कुछ वाक्य } // यहाँ i 10 है
लूप में उपयोग let
:
इंस्टेंस
let i = 7; for (let i = 0; i < 10; i++) { // कुछ वाक्य } // यहाँ i 7 है
पहले उदाहरण में, लूप में उपयोग की गई वारियेबल var
लूप के बाहर की वारियेबल को फिर से घोषित की गई है。
दूसरे उदाहरण में, लूप में उपयोग की गई वारियेबल let
लूप के बाहर की वारियेबल को फिर से घोषित नहीं किया गया है。
यदि लूप में let
वारियेबल i घोषित की गई, तो केवल लूप में, वारियेबल i दृश्यमान है。
फ़ंक्शन क्षेत्र
फ़ंक्शन में वारियेबल घोषित करते समय var
और let
भी अधिक आसान हैं。
वे सभीफ़ंक्शन क्षेत्र:
function myFunction() { var carName = "porsche"; // फ़ंक्शन क्षेत्र } function myFunction() { let carName = "porsche"; // फ़ंक्शन क्षेत्र }
वैश्विक क्षेत्र
यदि ब्लॉक के बाहर घोषित किया गया है, तो var
और let
भी अधिक आसान हैं。
वे सभीवैश्विक क्षेत्र:
var x = 10; // वैश्विक क्षेत्र let y = 6; // वैश्विक क्षेत्र
HTML में वैश्विक चेतावनी
JavaScript के उपयोग में, वैश्विक क्षेत्र JavaScript इकाई है。
HTML में, वैश्विक क्षेत्र window ऑब्जेक्ट है。
द्वारा var
शब्दांकित वैश्विक चेतावनी window ऑब्जेक्ट के लिए है:
इंस्टेंस
var carName = "porsche"; // यहाँ के कोड window.carName का उपयोग कर सकते है
द्वारा let
शब्दांकित वैश्विक चेतावनी window ऑब्जेक्ट के लिए नहीं है:
इंस्टेंस
let carName = "porsche"; // यहाँ के कोड window.carName का उपयोग नहीं कर सकते
चेतावनी:
कार्यक्रम के किसी भी स्थान पर उपयोग की जा सकती है var
JavaScript चेतावनी:
इंस्टेंस
var x = 10; // अब x 10 है var x = 6; // अब x 6 है
उसी रूपरेखा में, या उसी ब्लॉक में, द्वारा let
फिर से घोषित करना var
वेरियेबल को अनुमति नहीं है:
इंस्टेंस
var x = 10; // अनुमति है let x = 6; // अनुमति नहीं { var x = 10; // अनुमति है let x = 6; // अनुमति नहीं }
उसी रूपरेखा में, या उसी ब्लॉक में, द्वारा let
फिर से घोषित करना let
वेरियेबल को अनुमति नहीं है:
इंस्टेंस
let x = 10; // अनुमति let x = 6; // अनुमति नहीं { let x = 10; // अनुमति let x = 6; // अनुमति नहीं }
उसी रूपरेखा में, या उसी ब्लॉक में, द्वारा var
फिर से घोषित करना let
वेरियेबल को अनुमति नहीं है:
इंस्टेंस
let x = 10; // अनुमति var x = 6; // अनुमति नहीं { let x = 10; // अनुमति var x = 6; // अनुमति नहीं }
अलग-अलग रूपरेखा या ब्लॉक में, द्वारा let
वेरियेबल को फिर से घोषित करना अनुमति है:
इंस्टेंस
let x = 6; // अनुमति { let x = 7; // अनुमति } { let x = 8; // अनुमति }
उठान
द्वारा var
घोषित वेरियेबलउठानऊपर।यदि आपको उठान (Hoisting) क्या है, तो हमारे Hoisting चैप्टर को पढ़ें।
वेरियेबल को घोषणा करने से पहले से इस्तेमाल कर सकते हैं:
इंस्टेंस
// यहाँ, आप carName इस्तेमाल कर सकते हैं var carName;
द्वारा let
घोषित वेरियेबल शीर्ष तक उठाए नहीं जाते हैं。
घोषणा let
वेरियेबल के पहले से इस्तेमाल करने से ReferenceError हो सकता है。
वेरियेबल ब्लॉक के शुरू से तब तक 'अस्थायी निषिद्ध' रहती है, जब तक वह घोषित नहीं होती है:
इंस्टेंस
// यहाँ, आप कर नहीं इस्तेमाल कर सकते हैं carName let carName;
- पिछला पृष्ठ JS वेरियेबल
- अगला पृष्ठ JS Const