Javascript Hoisting in Hindi: Step-by-Step Guide with Examples

Javascript Hoisting in Hindi के article में आज हम बात करने वाले है Javascript Hoisting के बारे में not होस्टिंग, इसको होइस्टिंग कहा जाता है, इस article में आप जानोगे की आप कैसे variables बनाते हो कैसे functions बनाते हो और कैसे वो hoist होते है |

Javascript Hoisting kya hai?

दोस्तों javascript में code execution से पहले जब variables और function declarations अपने scope में top में move होते हैं उसे ही hoisting कहा जाता है अगर इसे और आसान भाषा में समझें तो जब भी हम variables और functions बनाते हैं या लिखते हैं तो javascript का जो इंजन है वो इन्हें काल्पनिक तौर पर सबसे ऊपर लेकर जाता है इसी वजह से हम function को declarations से पहले भी access कर सकते हैं |

Javascript Hoisting असल में JS Memory Creation Phase का हिस्सा है यानी की जावास्क्रिप्ट का इंजन कोड चलने से पहले ही declarations के लिए memory allocate कर देता है, जिससे वे अपने पूरे स्कोप में available हो जाते हैं |

Javascript Variable Hoisting

जैसे की उपर आपने पढ़ा है की hoisting javascript की Memory Creation Phase का एक हिस्सा है जिसमें काफ़ी कुछ होता है behind the scens जैसे की memory creation, undefined, temporal dead zone आदि |

Javascript Variable Hoisting में major 3 चीजें होती हैं जिनके ज़रिए हम कोई भी variable को var, let और const के ज़रिए create कर सकते हैं अब इनको js engine कैसे hoist करता है यह समझना जरूरी है |

Javascript var Hoisting

Javascript के ES6 में var को outdated माना गया है लेकिन ऐसा नहीं है कि यह काम नहीं करता, यह पहले भी काम में लिया जाता था और अभी भी यह work करता है लेकिन developers इसको अब कम पसंद करते हैं क्योंकि इसकी कुछ सीमाएँ है |

console.log(a); // undefined
var a = 5;

ऊपर दिए गए example को अगर आप browser के console में dekhenge तो आपको undefined दिखाई देगा जिसका कारण है कि JS इंजन जब memory creation phase में होता है तो पहले undefined सेट करता है और उसके बाद में अगर कोई value हुई तो उसको set करता है अब इस example में हम वैल्यू को assign होने से पहले ही variable को access करने की कोशिश कर रहे हैं तो JS इंजन हमें undefined show करेगा var के case में |

इसके अलावा आप अब यह भी जानते हैं कि code execution से पहले हमारे variables top में चले जाते हैं और global execution context में value by default undefined सेट होती है |

Javascript let and const Hoisting

Javascript में let ओर const का थोड़ा सा अलग सिस्टम है इसमें अगर आप initialized होने से पहले अगर value को access करने की कोशिश करते हैं तो उसमें output undefined की जगह ReferenceError देखने को मिलेगा जैसे की नीचे example में दिखाया गया है |

console.log(b); // ReferenceError
let b = 10;

अब आप सोचोगे की let ओर const के टाइम ऐसा क्यों होता है तो दोस्तों इसके पीछे एक बड़ा कारण है कि अगर let ओर const hoisted हैं यानी लिखे हुए हैं लेकिन अभी initialized नहीं हुए हैं तो उस case में यह दोनों Temporal Dead Zone (TDZ) में रहते हैं जब तक कि यह declared नहीं हो जाते तो इसी कारण ReferenceError देखने को मिलता है |

Javascript Function Hoisting

Javascript में Function का फ़ंडा ज़्यादा completed नहीं है इसमें आप देखोगे की इसको चाहे पहले access करो या बाद में access करो आपको वैल्यू मिल ही जाती है क्योंकि function जो है वो पूरा का पूरा hoisted होता है जिसके कारण आपको वैल्यू मिल जाती है जैसे की आप नीचे देख सकते हैं |

greet();//Hello Lovely Users!!
function greet(){
  console.log("Hello Lovely Users!!")
}

Javascript Function Expression Hoisting

जब भी आप किसी function को किसी variable में store करते हैं तो उसको बोला जाता है Function Expression ओर Function Expression जो है वह कभी भी fully top पर नहीं जाता है |

sayHi(); // TypeError

var sayHi = function() {
  console.log("Hi!");
};

अब ऊपर वाले case में आप देखोगे तो TypeError आ रहा है जिसका कारण है कि यह function var में स्टोर है और function का नाम है sayHi तो सबसे top में sayHi जाएगा लेकिन var की वैल्यू undefined रहेगी जिसके कारण पूरा function memory creation phase में नहीं गया और TypeError देखने को मिलेगी |

उम्मीद है आपको इन examples से समझने में काफ़ी सहूलियत मिली होगी |

Javascript Hoisting in Hindi Conclusion

Javascript Hoisting in Hindi के इस आर्टिकल में आपने पढ़ा की Hoisting kya hai?, Javascript Variable Hoisting, Javascript Function Hoisting आदि जिसमें आपने समझा की javascript में चाहे variables हों या functions सभी hoisted रहते हैं |

उम्मीद है आपको आज के आर्टिकल में कुछ नया पढ़ने को और सीखने को मिला होगा |

Leave a Comment