इस ट्यूटोरियल में, आप उदाहरणों की सहायता से जावास्क्रिप्ट में चर दायरे के बारे में जानेंगे।
स्कोप कोड के कुछ हिस्सों में चर और कार्यों की उपलब्धता को संदर्भित करता है।
जावास्क्रिप्ट में, एक चर में दो प्रकार के क्षेत्र होते हैं:
- वैश्विक कार्यक्षेत्र
- स्थानीय स्कोप
वैश्विक कार्यक्षेत्र
किसी प्रोग्राम के शीर्ष पर या किसी फ़ंक्शन के बाहर घोषित किया गया एक वैरिएबल एक वैश्विक स्कोप वैरिएबल माना जाता है।
आइए एक वैश्विक गुंजाइश चर का एक उदाहरण देखें।
// program to print a text let a = "hello"; function greet () ( console.log(a); ) greet(); // hello
उपरोक्त कार्यक्रम में, चर को एक कार्यक्रम के शीर्ष पर घोषित किया जाता है और एक वैश्विक चर है। इसका मतलब a
है कि कार्यक्रम में चर का उपयोग कहीं भी किया जा सकता है।
वैश्विक चर का मान किसी फ़ंक्शन के अंदर बदला जा सकता है। उदाहरण के लिए,
// program to show the change in global variable let a = "hello"; function greet() ( a = 3; ) // before the function call console.log(a); //after the function call greet(); console.log(a); // 3
उपरोक्त कार्यक्रम में, चर एक वैश्विक चर है। A का मान हैलो है। तब चर एक फ़ंक्शन के अंदर पहुंच जाता है और मान 3 में बदल जाता है ।
इसलिए, फ़ंक्शन के अंदर इसे बदलने के बाद परिवर्तनों का मूल्य।
नोट : वैश्विक चर का उपयोग करने से बचने के लिए यह एक अच्छा अभ्यास है क्योंकि कार्यक्रम में विभिन्न क्षेत्रों में एक वैश्विक चर का मूल्य बदल सकता है। यह कार्यक्रम में अज्ञात परिणाम पेश कर सकता है।
जावास्क्रिप्ट में, एक वेरिएबल को बिना घोषित किए भी इस्तेमाल किया जा सकता है। यदि एक चर का उपयोग बिना घोषित किए किया जाता है, तो वह चर स्वचालित रूप से एक वैश्विक चर बन जाता है।
उदाहरण के लिए,
function greet() ( a = "hello" ) greet(); console.log(a); // hello
उपरोक्त कार्यक्रम में, चर एक वैश्विक चर है।
यदि चर का उपयोग करके घोषित किया गया था let a = "hello"
, तो प्रोग्राम एक त्रुटि फेंक देगा।
नोट : जावास्क्रिप्ट में, "strict mode";
एक ऐसा वेरिएबल है , जिसे घोषित किए बिना एक वेरिएबल का उपयोग नहीं किया जा सकता है। सख्त के बारे में अधिक जानने के लिए, जावास्क्रिप्ट स्ट्रिक्ट पर जाएँ।
स्थानीय स्कोप
एक चर में एक स्थानीय गुंजाइश भी हो सकती है, अर्थात इसे केवल एक फ़ंक्शन के भीतर एक्सेस किया जा सकता है।
उदाहरण 1: स्थानीय स्कोप परिवर्तनीय
// program showing local scope of a variable let a = "hello"; function greet() ( let b = "World" console.log(a + b); ) greet(); console.log(a + b); // error
आउटपुट
हेलोवर्ल्ड अनकैप्ड रेफरेंसएयर: बी परिभाषित नहीं है
उपरोक्त कार्यक्रम में, चर एक वैश्विक चर है और चर b एक स्थानीय चर है। वेरिएबल b को केवल फंक्शन अभिवादन के अंदर एक्सेस किया जा सकता है। इसलिए, जब हम फ़ंक्शन के बाहर वेरिएबल b को एक्सेस करने का प्रयास करते हैं, तो एक त्रुटि उत्पन्न होती है।
चलो ब्लॉक स्कूप्ड है
let
कीवर्ड ब्लॉक-दायरे वाले (चर केवल तत्काल ब्लॉक में पहुँचा जा सकता है) है।
उदाहरण 2: ब्लॉक-स्कॉप्ड वेरिएबल
// program showing block-scoped concept // global variable let a = 'Hello'; function greet() ( // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') ( // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); ) // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c); ) greet();
आउटपुट
हैलो वर्ल्ड हैलो वर्ल्ड हैलो अनलॉक्ड संदर्भरंग: एक्स परिभाषित नहीं है
उपरोक्त कार्यक्रम में, चर
- a एक वैश्विक चर है। इसे प्रोग्राम में कहीं भी एक्सेस किया जा सकता है।
- b एक स्थानीय चर है। इसे फंक्शन के अंदर ही एक्सेस किया जा सकता है
greet
। - c एक ब्लॉक-स्कॉप्ड वैरिएबल है। इसे केवल
if
स्टेटमेंट ब्लॉक के अंदर एक्सेस किया जा सकता है ।
इसलिए, उपरोक्त कार्यक्रम में, console.log()
बिना किसी मुद्दे के पहले दो काम।
हालाँकि, हम तीसरे में ब्लॉक के बाहर ब्लॉक-स्कोपेड वैरिएबल c को एक्सेस करने की कोशिश कर रहे हैं console.log()
। यह एक त्रुटि फेंक देगा।
नोट : जावास्क्रिप्ट में, var
फ़ंक्शन स्कूप्ड है और let
ब्लॉक-स्कॉप्ड है। यदि आप उपरोक्त कार्यक्रम में कथन के var c = 'hello';
अंदर उपयोग करने का प्रयास करते हैं if
, तो पूरा कार्यक्रम काम करता है, क्योंकि c को स्थानीय चर के रूप में माना जाता है।
let
बनाम के बारे में अधिक जानने के लिए var
, जावास्क्रिप्ट लेट वर्जन पर जाएं।