होस्टिंग एक जावास्क्रिप्ट तकनीक है जो कोड निष्पादन शुरू होने से पहले चर और फ़ंक्शन घोषणाओं को उनके दायरे के शीर्ष पर ले जाती है। एक दायरे में कोई फर्क नहीं पड़ता कि फ़ंक्शन या चर घोषित किए गए हैं, वे अपने दायरे के शीर्ष पर चले गए हैं।
ध्यान दें कि उत्थापन केवल घोषणा को आगे बढ़ाता है जबकि असाइनमेंट जगह पर छोड़ दिया जाता है।
उदाहरण
console.log(functionBelow("Hello")); function functionBelow(greet) { return `${greet} world`; } console.log(functionBelow("Hi"));
आउटपुट
Hello world Hi world
ध्यान दें कि फ़ंक्शन घोषणा को कॉल करने के बाद किया गया था लेकिन फिर भी इसे कॉल किया गया था। यह समारोह उत्थापन के कारण संभव हुआ।
यह भी ध्यान रखें कि जब आप वेरिएबल जैसे फ़ंक्शन असाइन करते हैं तो यह काम नहीं करता है।
console.log(functionBelow("Hello")); var functionBelow = function(greet) { return `${greet} world`; } console.log(functionBelow("Hi"));
यह एक त्रुटि के साथ विफल हो जाएगा:functionBelow कोई फ़ंक्शन नहीं है
यदि आप var को हटाते हैं, तो यह त्रुटि के साथ विफल हो जाएगा:functionBelow परिभाषित नहीं है
ध्यान दें कि जब इसे var के साथ घोषित किया गया था, तो इसे संदर्भ में एक चर के रूप में फहराया गया था। लेकिन यह अभी भी अपरिभाषित रहा। इसे परिवर्तनीय उत्थापन के रूप में जाना जाता है। इस संपत्ति के कारण, जावास्क्रिप्ट में अनाम और तीर फ़ंक्शन कभी नहीं फहराए जाते हैं।