जावास्क्रिप्ट स्कोप
दायरा चर की पहुंच (दृश्यता) निर्धारित करता है।
जावास्क्रिप्ट में 3 प्रकार के स्कोप हैं:
- ब्लॉक स्कोप
- फंक्शन स्कोप
- वैश्विक कार्यक्षेत्र
ब्लॉक स्कोप
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
स्थानीय दायरा
जावास्क्रिप्ट फ़ंक्शन के भीतर घोषित चर, फ़ंक्शन के लिए LOCAL बन जाते हैं।
उदाहरण
// code here can NOT use carName
function myFunction() {
let carName = "Volvo";
// code here CAN use carName
}
// code here can NOT use carName
स्थानीय चर में फंक्शन स्कोप होता है :
उन्हें केवल फ़ंक्शन के भीतर से ही एक्सेस किया जा सकता है।
चूंकि स्थानीय चर केवल उनके कार्यों के अंदर पहचाने जाते हैं, एक ही नाम वाले चर का उपयोग विभिन्न कार्यों में किया जा सकता है।
फ़ंक्शन शुरू होने पर स्थानीय चर बनाए जाते हैं, और फ़ंक्शन पूरा होने पर हटा दिए जाते हैं।
फंक्शन स्कोप
जावास्क्रिप्ट में फंक्शन स्कोप है: प्रत्येक फंक्शन एक नया स्कोप बनाता है।
किसी फ़ंक्शन के अंदर परिभाषित चर फ़ंक्शन के बाहर से पहुंच योग्य (दृश्यमान) नहीं होते हैं।
वेरिएबल के साथ घोषित var
, let
और const
किसी फ़ंक्शन के अंदर घोषित होने पर काफी समान होते हैं।
उन सभी के पास फंक्शन स्कोप है :
function myFunction() {
var carName = "Volvo";
// Function Scope
}
function myFunction() {
let carName = "Volvo"; //
Function Scope
}
function myFunction() {
const carName = "Volvo"; //
Function Scope
}
वैश्विक जावास्क्रिप्ट चर
किसी फ़ंक्शन के बाहर घोषित एक चर, GLOBAL बन जाता है ।
उदाहरण
let carName = "Volvo";
// code here can use carName
function myFunction() {
// code here can also use carName
}
एक वैश्विक चर का वैश्विक दायरा होता है :
वेब पेज पर सभी स्क्रिप्ट और फ़ंक्शन इसे एक्सेस कर सकते हैं।
वैश्विक कार्यक्षेत्र
वैश्विक रूप से घोषित चर (किसी भी समारोह के बाहर) में वैश्विक दायरा है ।
जावास्क्रिप्ट प्रोग्राम में वैश्विक चरों को कहीं से भी एक्सेस किया जा सकता है।
एक ब्लॉक के बाहर घोषित होने पर वेरिएबल्स के साथ घोषित किया जाता है var
, let
और const
काफी समान होता है।
उन सभी का वैश्विक दायरा है :
var x = 2;
// Global scope
let x = 2; //
Global scope
const x = 2; //
Global scope
जावास्क्रिप्ट चर
जावास्क्रिप्ट में, ऑब्जेक्ट और फ़ंक्शन भी चर हैं।
स्कोप कोड के विभिन्न हिस्सों से चर, वस्तुओं और कार्यों की पहुंच निर्धारित करता है।
स्वचालित रूप से वैश्विक
यदि आप किसी ऐसे चर के लिए मान निर्दिष्ट करते हैं जिसे घोषित नहीं किया गया है, तो यह स्वचालित रूप से एक वैश्विक चर बन जाएगा।
यह कोड उदाहरण वैश्विक चर घोषित करेगा carName
, भले ही मान किसी फ़ंक्शन के अंदर असाइन किया गया हो।
उदाहरण
myFunction();
// code here can use carName
function myFunction() {
carName = "Volvo";
}
सख्त मोड
सभी आधुनिक ब्राउज़र "सख्त मोड" में जावास्क्रिप्ट चलाने का समर्थन करते हैं।
आप इस ट्यूटोरियल के बाद के अध्याय में सख्त मोड का उपयोग करने के तरीके के बारे में और जानेंगे।
"सख्त मोड" में, अघोषित चर स्वचालित रूप से वैश्विक नहीं होते हैं।
HTML में वैश्विक चर
जावास्क्रिप्ट के साथ, वैश्विक दायरा जावास्क्रिप्ट वातावरण है।
HTML में, वैश्विक दायरा विंडो ऑब्जेक्ट है।
कीवर्ड के साथ परिभाषित वैश्विक चर var
विंडो ऑब्जेक्ट से संबंधित हैं:
उदाहरण
var carName = "Volvo";
// code here
can use window.carName
कीवर्ड के साथ परिभाषित वैश्विक चर let
विंडो ऑब्जेक्ट से संबंधित नहीं हैं:
उदाहरण
let carName = "Volvo";
// code here can not use window.carName
चेतावनी
जब तक आपका इरादा न हो तब तक वैश्विक चर न बनाएं।
आपके वैश्विक चर (या फ़ंक्शन) विंडो चर (या फ़ंक्शन) को अधिलेखित कर सकते हैं।
विंडो ऑब्जेक्ट सहित कोई भी फ़ंक्शन, आपके वैश्विक चर और कार्यों को अधिलेखित कर सकता है।
जावास्क्रिप्ट चर का जीवनकाल
एक जावास्क्रिप्ट चर का जीवनकाल तब शुरू होता है जब इसे घोषित किया जाता है।
फ़ंक्शन पूरा होने पर फ़ंक्शन (स्थानीय) चर हटा दिए जाते हैं।
वेब ब्राउज़र में, जब आप ब्राउज़र विंडो (या टैब) बंद करते हैं तो वैश्विक चर हटा दिए जाते हैं।
समारोह तर्क
फ़ंक्शन तर्क (पैरामीटर) फ़ंक्शन के अंदर स्थानीय चर के रूप में काम करते हैं।