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

जावास्क्रिप्ट में स्कोप कैसे काम करता है

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

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

  • एक वैश्विक चर एक कोड ब्लॉक के बाहर घोषित एक चर है
  • एक स्थानीय चर एक कोड ब्लॉक के अंदर घोषित एक चर है

जानना अच्छा है: फ़ंक्शंस चर और अन्य फ़ंक्शंस तक पहुँच सकते हैं जो बाहर सेट किए गए हैं स्वयं — लेकिन वेरिएबल नहीं जो अंदर . सेट किए गए हैं अन्य कार्य।

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

वैश्विक दायरा

वैश्विक दायरे में कोई भी चर या कार्य अन्य कार्यों के अंदर पहुंच योग्य है:

// Global scope
let dogBreed = "Labrador"

let getDogBreed = function() {
  // dogBreed is accessible because it’s in the global scope
  console.log(dogBreed)
  // "Labrador"
}

// Run function
getDogBreed()

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

// Global scope
let dogBreed = "Labrador"

let getDogBreed = function() {
  // function inside function
  let getDogBreedFromGlobalScope = function() {
    // accesses dogBreed from the global scope
    console.log(dogBreed)
    // "Labrador"
  }
  // Run function
  getDogBreedFromGlobalScope()
}

// Run function
getDogBreed()

स्थानीय दायरा

स्थानीय दायरे के साथ एक चर या कार्य केवल अपने स्वयं के संदर्भ (दायरे) के भीतर से पहुंच योग्य है:

let getDogBreed = function() {
  // local variable scope
  let dogBreed = "Labrador"
  // We can access the dogBreed variable because it’s local
  console.log(dogBreed)
  // "Labrador
}

चर dogBreed इसका एक स्थानीय दायरा है, और इसे केवल इसके दायरे से ही पहुँचा जा सकता है (घुंघराले ब्रेसिज़ के अंदर{ .. } )

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

let getDogBreed = function() {
  // local variable scope
  let dogBreed = "Labrador"
}

// Try to access a locally scoped variable
console.log(dogBreed)
// Uncaught ReferenceError: dogBreed is not defined

आपको एक संदर्भ त्रुटि मिलती है, जो कहती है कि “dog breed is not defined” , क्योंकि आप वैश्विक दायरे से स्थानीय रूप से दायरे वाले चर को लॉग आउट करने का प्रयास कर रहे हैं।

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

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

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

// Global scope
let animals = function() {
  // Lexical scope
  let dogBreed = "Labrador"
  // Nested function
  let getAnimals = function() {
    // We can access dogBreed because it's in the lexical scope
    console.log(dogBreed)
    // "Labrador"

    // Here’s a locally scoped variable
    let catBreed = "Persian"
    console.log(catBreed)
    // "Persian"
  }
  // Run function
  getAnimals()

  // This works because the dogBreed variable is in the lexical scope
  console.log(dogBreed)
  // "Labrador"

  // This won’t work, because catBreed is not in the lexical scope, it’s local to the getAnimals() function
  console.log(catBreed)
  // Uncaught ReferenceError: catBreed is not defined
}

animals()

  1. ओपेरा में जावास्क्रिप्ट को कैसे निष्क्रिय करें?

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

  1. ओपेरा में जावास्क्रिप्ट कैसे सक्षम करें?

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

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

    कॉल (), लागू () और बाइंड () जावास्क्रिप्ट में विधियों को उधार लेने के लिए उपयोग किया जाता है। जावास्क्रिप्ट में उधार लेने के तरीकों के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="view