एक वाक्य में जावास्क्रिप्ट में होस्टिंग का वर्णन करने के लिए चर और फ़ंक्शन को उस दायरे के शीर्ष पर फहराया जाता है जिसे वे घोषित किए जाते हैं।
मैं मान रहा हूं कि आप एक शुरुआती हैं, ठीक से समझने के लिए पहले हमने अपरिभाषित और संदर्भ संदर्भ के बीच के अंतर को समझा है।
var v;
console.log(v);
console.log(abc);
अब bellow कोड में हम क्या देखते हैं? एक चर और एक समारोह अभिव्यक्ति स्पष्ट है।
<script>
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
</script>
लेकिन इस प्रमाण के साथ असली तस्वीर कि दोनों चर और फ़ंक्शन दोनों को ऊपर के दायरे में फहराया गया है:
console.log(totalAmo);
console.log(getSum(8,9));
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
console.log(totalAmo);
console.log(getSum(9,7));
पहले दो लॉग का आउटपुट अपरिभाषित है और TypeError: getSum एक फ़ंक्शन नहीं है क्योंकि दोनों संस्करण varAmo हैं और getSum को उनके दायरे के शीर्ष पर फहराया जाता है जैसे कि bellow
<script>
var totalAmo;
var getSum;
console.log(totalAmo);
console.log(getSum(8,9));
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
console.log(totalAmo);
console.log(getSum(9,7));
</script>
लेकिन कार्यों की घोषणा के लिए पूरे कार्य अपने दायरे के शीर्ष पर फहराए गए।
console.log(getId());
function getId(){
return 739373;
}
अब वही लॉजिक उन वैरिएबल, फंक्शंस एक्सपीरिएंस और फंक्शन डिक्लेरेंस के लिए जाता है जो फंक्शनल स्कोप के अंदर घोषित किए जाते हैं। मुख्य बिंदु: वे फ़ाइल के शीर्ष पर फहराए नहीं जाएंगे ;
function functionScope(){
var totalAmo;
var getSum;
console.log(totalAmo);
console.log(getSum(8,9));
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
}
इसलिए, जब आप var का उपयोग करते हैं कीवर्ड का वेरिएबल और फंक्शन उतने स्कोप (ग्लोबल स्कोप और फंक्शन स्कोप) के ऊपर फहराया जाता है। व्हाट अबाउटलेट और कास्ट के , कॉस्ट और लेट दोनों अभी भी वैरिएबल स्कोप और फंक्शन स्कोप की तरह ही अवगत हैं, लेकिन कांस्टेबल और लेट वैरिएबल्स भी एक अन्य स्कोप के बारे में जानते हैं, जिसे ब्लॉक्ड स्कोप कहा जाता है। जब भी कोड का कोई ब्लॉक होता है, जैसे लूप के लिए, यदि और स्टेटमेंट, जबकि लूप आदि।
जब हम कॉन्स्ट का उपयोग करते हैं और इन ब्लॉक स्कोप में एक वैरिएबल घोषित करने की अनुमति देते हैं, तो वैरिएबल डिक्लेरेशन केवल उस ब्लॉक के शीर्ष पर फहराया जाएगा जो इसमें है, और यह पैरेंट फ़ंक्शन के शीर्ष या शीर्ष पर नहीं फहराया जाएगा। वैश्विक गुंजाइश है कि इसे फहराया जाता है।
function getTotal(){
let total=0;
for(var i = 0; i<10; i++){
let valueToAdd = i;
var multiplier = 2;
total += valueToAdd*multiplier;
}
return total;
}
एब्बो उदाहरण में चर को बोले की तरह फहराया जाएगा
function getTotal(){
let total;
var multiplier;
total = 0;
for(var i = 0; i<10; i++){
let valueToAdd;
valueToAdd = i;
multiplier = 2;
total += valueToAdd*multiplier;
}
return total;
}