"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या आप जावास्क्रिप्ट में सशर्त कथनों के अंदर कार्यों की घोषणा कर सकते हैं?

क्या आप जावास्क्रिप्ट में सशर्त कथनों के अंदर कार्यों की घोषणा कर सकते हैं?

2024-11-18 को प्रकाशित
ब्राउज़ करें:303

Can You Declare Functions Inside Conditional Statements in JavaScript?

सशर्त बयानों के भीतर फ़ंक्शन घोषणाएं

जावास्क्रिप्ट में, फ़ंक्शन घोषणाओं का प्रचलित भाषा मानक और जिस वातावरण में उन्हें निष्पादित किया जाता है, उसके आधार पर एक अलग व्यवहार होता है।

सख्त मोड में (ईएस5)

सख्त मोड में, ईसीएमएस्क्रिप्ट 5 में पेश किया गया (ES5), सशर्त बयानों के भीतर फ़ंक्शन घोषणाओं की अनुमति नहीं है। ऐसा इसलिए है क्योंकि फ़ंक्शन घोषणाएं फहराए गए वैरिएबल बनाती हैं, जो संपूर्ण फ़ंक्शन या वैश्विक दायरे तक सीमित होती हैं। उन्हें एक सशर्त बयान के भीतर रखने से यह उत्थापन तंत्र टूट जाएगा। सशर्त बयानों के भीतर अप्रत्याशित था। विभिन्न ब्राउज़रों और जावास्क्रिप्ट इंजनों ने इस स्थिति से निपटने के लिए अपने स्वयं के नियम लागू किए, जिससे असंगत परिणाम सामने आए।

आधुनिक जावास्क्रिप्ट (ES2015) में

2018 तक, अधिकांश आधुनिक ब्राउज़र ईसीएमएस्क्रिप्ट 2015 (ईएस2015) का समर्थन करें, जिसने ब्लॉक के भीतर फ़ंक्शन घोषणाओं की सख्त व्याख्या पेश की। ES2015 में, फ़ंक्शन घोषणाओं का दायरा उस ब्लॉक तक होता है जिसमें उन्हें घोषित किया जाता है।

उदाहरण:

निम्नलिखित कोड पर विचार करें:

वर एबीसी = ''; यदि (1 === 0) { फ़ंक्शन ए() { एबीसी = 7; } } अन्यथा यदि ('ए' === 'ए') { फ़ंक्शन ए() { एबीसी = 19; } } अन्यथा यदि ('फू' === 'बार') { फ़ंक्शन ए() { एबीसी = 'फू'; } } ए(); दस्तावेज़.लिखें(एबीसी); //'foo' होने पर भी 'foo' लिखता है! हालाँकि, गैर-सख्त मोड में, यह कार्यान्वयन के आधार पर अलग-अलग आउटपुट उत्पन्न कर सकता है। दिए गए उदाहरण में, क्रोम "foo" आउटपुट देता है जबकि फ़ायरफ़ॉक्स "19" आउटपुट देता है। फ़ंक्शन को सशर्त रूप से परिभाषित करते समय फ़ंक्शन घोषणाओं की। फ़ंक्शन एक्सप्रेशन स्कोप्ड फ़ंक्शन बनाते हैं जो केवल उनके तत्काल दायरे में ही पहुंच योग्य होते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3