Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में Scope कैसे काम करता है

JavaScript में Scope कैसे काम करता है और ग्लोबल स्कोप, लोकल स्कोप, और लेक्सिकल स्कोप के बीच का अंतर जानें।

Scope उस संदर्भ को संदर्भित करता है जिसमें फंक्शन्स या वेरिएबल्स एक्सेसिबल हैं। JavaScript में तीन स्कोप टाइप्स हैं: ग्लोबल स्कोप, लोकल स्कोप, लेक्सिकल स्कोप:

  • एक ग्लोबल वेरिएबल एक वेरिएबल है जिसे कोड ब्लॉक के बाहर डिक्लेयर किया गया है
  • एक लोकल वेरिएबल एक वेरिएबल है जिसे कोड ब्लॉक के अंदर डिक्लेयर किया गया है

जानना अच्छा है: फंक्शन्स उन वेरिएबल्स और अन्य फंक्शन्स को एक्सेस कर सकते हैं जो उनके बाहर सेट हैं — लेकिन उन वेरिएबल्स को नहीं जो अंदर अन्य फंक्शन्स में सेट हैं।

यह एक मिनट में समझ आ जाएगा।

ग्लोबल स्कोप

ग्लोबल स्कोप में कोई भी वेरिएबल या फंक्शन अन्य फंक्शन्स के अंदर एक्सेसिबल है:

// Global scope 
let dogBreed = "Labrador" 
let getDogBreed = function() { 
  // dogBreed एक्सेसिबल है क्योंकि यह ग्लोबल स्कोप में है 
  console.log(dogBreed) // "Labrador" 
} 
// फंक्शन चलाएं 
getDogBreed()

इसमें फंक्शन्स के अंदर फंक्शन्स शामिल हैं:

// Global scope 
let dogBreed = "Labrador" 
let getDogBreed = function() { 
  // फंक्शन के अंदर फंक्शन 
  let getDogBreedFromGlobalScope = function() { 
    // ग्लोबल स्कोप से dogBreed एक्सेस करता है 
    console.log(dogBreed) // "Labrador" 
  } 
  // फंक्शन चलाएं 
  getDogBreedFromGlobalScope() 
} 
// फंक्शन चलाएं 
getDogBreed()

लोकल स्कोप

लोकल स्कोप वाला वेरिएबल या फंक्शन केवल अपने स्वयं के संदर्भ (स्कोप) से एक्सेसिबल होता है:

let getDogBreed = function() { 
  // लोकल वेरिएबल स्कोप 
  let dogBreed = "Labrador" 
  // हम dogBreed वेरिएबल को एक्सेस कर सकते हैं क्योंकि यह लोकल है 
  console.log(dogBreed) // "Labrador 
}

वेरिएबल dogBreed का लोकल स्कोप है, और इसे केवल इसके स्कोप (कर्ली ब्रेसेस { .. } के अंदर) से एक्सेस किया जा सकता है।

यहां वही कोड है, लेकिन इस बार हम console.log(dogBreed) को लोकल स्कोप के बाहर ले जाते हैं, इसलिए अब यह ग्लोबल स्कोप में है:

let getDogBreed = function() { 
  // लोकल वेरिएबल स्कोप 
  let dogBreed = "Labrador" 
} 
// लोकली स्कोप्ड वेरिएबल को एक्सेस करने का प्रयास 
console.log(dogBreed) // Uncaught ReferenceError: dogBreed is not defined

आपको एक रेफरेंस एरर मिलता है, जो कहता है "dog breed is not defined", क्योंकि आप ग्लोबल स्कोप से लोकली स्कोप्ड वेरिएबल को लॉग आउट करने का प्रयास कर रहे हैं।

लेक्सिकल स्कोप

जब आप नेस्ट फंक्शन्स (फंक्शन्स के अंदर फंक्शन्स डालते हैं), तो पैरेंट फंक्शन (सबसे बाहरी फंक्शन) के भीतर के वेरिएबल्स और फंक्शन्स को इनर फंक्शन्स द्वारा एक्सेस किया जा सकता है। इसे लेक्सिकल स्कोप कहा जाता है।

हालांकि, पैरेंट (सबसे बाहरी) फंक्शन स्वयं, इनर फंक्शन्स के भीतर के वेरिएबल्स या फंक्शन्स को एक्सेस नहीं कर सकता। यह सुनने में जितना भ्रमित लगता है उतना है नहीं, आइए एक उदाहरण देखें, तब समझ आ जाएगा:

// Global scope 
let animals = function() { 
  // Lexical scope 
  let dogBreed = "Labrador" 
  // नेस्टेड फंक्शन 
  let getAnimals = function() { 
    // हम dogBreed को एक्सेस कर सकते हैं क्योंकि यह लेक्सिकल स्कोप में है 
    console.log(dogBreed) // "Labrador" 
    // यहां एक लोकली स्कोप्ड वेरिएबल है 
    let catBreed = "Persian" 
    console.log(catBreed) // "Persian" 
  } 
  // फंक्शन चलाएं 
  getAnimals() 
  // यह काम करता है क्योंकि dogBreed वेरिएबल लेक्सिकल स्कोप में है 
  console.log(dogBreed) // "Labrador" 
  // यह काम नहीं करेगा, क्योंकि catBreed लेक्सिकल स्कोप में नहीं है, यह getAnimals() फंक्शन के लिए लोकल है 
  console.log(catBreed) // Uncaught ReferenceError: catBreed is not defined 
} 
animals()
  1. Opera में JavaScript कैसे अक्षम करें Opera में JavaScript कैसे अक्षम करें

    Opera में JavaScript अक्षम करने के लिए, नीचे दिए गए चरणों का पालन करें: Opera ब्राउज़र खोलें और बाईं ओर क्लिक करें। फिर सेटिंग्स पर क्लिक करें: अब खोज सेटिंग्स के तहत, javascript खोजें। खोजने पर, आपको JavaScript अक्षम करने के लिए निम्न विकल्प मिलेंगे जैसा नीचे दिखाया गया है:

  1. Opera में JavaScript कैसे सक्षम करें Opera में JavaScript कैसे सक्षम करें

    Opera में JavaScript सक्षम करने के लिए, नीचे दिए गए चरणों का पालन करें: Opera ब्राउज़र खोलें और बाईं ओर क्लिक करें। फिर सेटिंग्स पर क्लिक करें: अब खोज सेटिंग्स के तहत, javascript खोजें। खोजने पर, आपको JavaScript अनुमति देने के लिए निम्न विकल्प मिलेंगे जैसा नीचे दिखाया गया है:

  1. जावास्क्रिप्ट में मेथड्स उधार कैसे लें? जावास्क्रिप्ट में मेथड्स उधार कैसे लें?

    call(), apply() और bind() का उपयोग जावास्क्रिप्ट में मेथड्स उधार लेने के लिए किया जाता है। जावास्क्रिप्ट में मेथड्स उधार लेने के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, init