जावास्क्रिप्ट हाउसिंग

होइस्टिंग (Hoisting) जेसक्रिप्ट (JavaScript) घोषणाओं को शीर्ष पर ले जाने का मूलभूत व्यवहार है।

जेसक्रिप्ट (JavaScript) की घोषणा उठायी जाती है

जेसक्रिप्ट (JavaScript) में, वेरियेबल का घोषणा करने के बाद इसे इस्तेमाल किया जा सकता है。

अन्य शब्दों में, घोषणा करने से पहले इसे इस्तेमाल किया जा सकता है।

उदाहरण 1 साथउदाहरण 2 का परिणाम एक साथ है:

उदाहरण 1

x = 5; // 5 को x में आरंभ करें
elem = document.getElementById("demo"); // एलिमेंट खोजें
elem.innerHTML = x;                     // x को एलिमेंट में दिखाएं
var x; // x को घोषणा करें

स्वयं एक प्रयोग कीजिए

उदाहरण 2

var x; // x को घोषणा करें
x = 5; // 5 को x में आरंभ करें
elem = document.getElementById("demo"); // एलिमेंट खोजें
elem.innerHTML = x;                     // x को एलिमेंट में दिखाएं

स्वयं एक प्रयोग कीजिए

इसे समझने के लिए, आपको "होइस्टिंग" शब्द को समझना चाहिए।

होइस्टिंग (Hoisting) जेसक्रिप्ट (JavaScript) जिसमें सभी घोषणाएँ वर्तमान क्षेत्र के शीर्ष पर उठायी जाती हैं का मूलभूत व्यवहार है (शीर्ष पर वर्तमान स्क्रिप्ट या वर्तमान फ़ंक्शन के शीर्ष पर उठाया जाता है)।

लेट और कंस्ट खासे शब्द

से लेट या कंस्ट घोषणा करे गए वेरियेबल और कंस्ट उठाया नहीं जाते!

कृपया जेसक्रिप्ट (JS) लेट / कंस्ट में अधिक जानकारी पढ़ें लेट और कंस्ट के बारे में。

जेसक्रिप्ट (JavaScript) का आरंभ उठाया नहीं जाता

जेसक्रिप्ट (JavaScript) केवल घोषणा को उठाता है, नहीं तो आरंभ।

उदाहरण 1 साथउदाहरण 2 का परिणाम अलग है:

उदाहरण 1

var x = 5; // x को 5 से आरंभ करें
var y = 7; // y को आरंभ करें
elem = document.getElementById("demo"); // एलिमेंट खोजें
elem.innerHTML = x + " " + y;           // x और y को दिखाएं

स्वयं एक प्रयोग कीजिए

उदाहरण 2

var x = 5; // x को 5 से आरंभ करें
elem = document.getElementById("demo"); // एलिमेंट खोजें
elem.innerHTML = x + " " + y;           // x और y को दिखाएं
var y = 7; // y को आरंभ करें 

स्वयं एक प्रयोग कीजिए

अंतिम उदाहरण में y अभी तक अनिर्दिष्ट है, यह कहना सही है क्या?

यह इसलिए है क्योंकि केवल घोषणा (var y) नहीं तो आरंभ (=7) शीर्ष पर उठाया गया है।

हॉइस्टिंग के कारण y इस्तेमाल किए जाने से पहले घोषित हो चुकी है, लेकिन इसका आरंभ नहीं हुआ है, इसलिए y का मूल्य अभी अनिश्चित है।

इस्तमाल 2 भी एक जैसा है:

इन्स्टांस

var x = 5; // x को 5 से आरंभ करें
var y;     // y घोषित करें
elem = document.getElementById("demo"); // एलिमेंट खोजें
elem.innerHTML = x + " " + y;           // x और y को दिखाएं
y = 7;    // 7 को y में आवंटित करें

स्वयं एक प्रयोग कीजिए

अपने वारियेबलों को शीर्ष में घोषित करें!

हॉइस्टिंग (कई डेवलपरों के लिए) जावास्क्रिप्ट की एक अज्ञात या अनदेखी व्यवहार है।

यदि डेवलपर नहीं समझता है कि हॉइस्टिंग क्या है, तो कार्यक्रम में बग (त्रुटियाँ) हो सकते हैं।

बग (त्रुटियाँ) को रोकने के लिए हमेशा प्रत्येक स्कोप के शुरू में सभी वारियेबलों को घोषित करें।

यहीं जावास्क्रिप्ट कोड को व्याख्यान करने के तरीके है, इस अच्छी आदत को बनाए रखें।

स्ट्रिक्ट मोड में जावास्क्रिप्ट असहीधे घोषणा किए गए वारियेबलों का उपयोग नहीं करता है。

अगले अध्याय में सीखेंयूज़ स्ट्रिक。”