होइस्टिंग एक जावास्क्रिप्ट तकनीक है जो वेरिएबल्स और फंक्शन डिक्लेरेशन्स को कोड निष्पादन शुरू होने से पहले उनके स्कोप के शीर्ष पर ले जाती है। एक स्कोप के भीतर चाहे फंक्शन्स या वेरिएबल्स कहीं भी घोषित किए गए हों, उन्हें उनके स्कोप के शीर्ष पर ले जाया जाता है।
ध्यान दें कि होइस्टिंग केवल घोषणा को ले जाती है जबकि असाइनमेंट्स जगह पर छोड़ दिए जाते हैं।
उदाहरण
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 is not a function
यदि आप var हटाते हैं, तो यह त्रुटि के साथ विफल होगा: functionBelow is not defined
ध्यान दें कि जब इसे var के साथ घोषित किया गया था, तो इसे कॉन्टेक्स्ट में वेरिएबल के रूप में होइस्ट किया गया था। लेकिन यह अभी भी undefined रहा। इसे वेरिएबल होइस्टिंग के रूप में जाना जाता है। इस संपत्ति के कारण, अनाम और एरो फंक्शन्स जावास्क्रिप्ट में कभी होइस्ट नहीं होते।