IIFE में सुरक्षा के लिए सेमीकोलन
अब मान लीजिए कि हमारा तुरंत लागू होने वाला फ़ंक्शन शुरुआत में प्लस के बजाय गोल कोष्ठकों में लिपटा हुआ है, इस तरह:
(function() {
console.log(1); // 1 प्रिंट करेगा
})();
मान लीजिए कि चर num फ़ंक्शन के बाहर
परिभाषित किया गया है:
let num = 1; // सेमीकोलन लगा है
(function() {
console.log(num); // 1 प्रिंट करेगा
})();
अब मान लीजिए कि हम सेमीकोलन लगाना भूल गए:
let num = 1
(function() {
console.log(num); //!! त्रुटि देगा
})();
इसका मतलब है कि यह कोड एक त्रुटि देगा, क्योंकि JavaScript हमारे फ़ंक्शन को पहली पंक्ति के निर्देश के निरंतरण के रूप में समझता है।
इस तरह की समस्याओं से बचने के लिए, तुरंत लागू होने वाले फ़ंक्शन कॉल से पहले हमेशा सेमीकोलन लगाना आवश्यक है, इस तरह:
let num = 1
;(function() {
console.log(num); // 1 प्रिंट करेगा
})();
ऐसा लग सकता है कि समस्या कुछ हद तक काल्पनिक है। वास्तव में, ऐसा नहीं है। ऐसी स्थिति हो सकती है कि आपकी पृष्ठ पर अलग-अलग फ़ाइलों से कई स्क्रिप्ट्स जुड़ी हों। इस मामले में एक फ़ाइल के अंत में सेमीकोलन छूट सकता है और यह स्वचालित रूप से समस्या पैदा कर देगा, अगर दूसरी फ़ाइल तुरंत लागू होने वाले फ़ंक्शन कॉल से शुरू होती है।
इसलिए, तुरंत लागू होने वाले फ़ंक्शन कॉल से पहले हमेशा-हमेशा सेमीकोलन लगाएं, भले ही आपको इस समय यकीन हो कि कोई समस्या नहीं होगी। वे बाद में उत्पन्न हो सकती हैं।
आइए ऊपर कही गई बात को लागू करें और तुरंत लागू होने वाले फ़ंक्शन को कॉल करें, शुरुआत में सेमीकोलन लगाकर:
;(function() {
console.log(1); // 1 प्रिंट करेगा
})();
बिना कोड चलाए निर्धारित करें कि कंसोल में क्या प्रिंट होगा:
let str = 'str';
(function() {
console.log(1);
})();
बिना कोड चलाए निर्धारित करें कि कंसोल में क्या प्रिंट होगा:
let str = 'str'
(function() {
console.log(1);
})();