ES6 ब्लॉक-स्तरीय कार्यों के शब्दार्थ को समझना
परिचय
ES6 के आगमन के साथ, ब्लॉक -लेवल फ़ंक्शन घोषणाएँ भाषा के लिए एक मूल्यवान अतिरिक्त बन गईं। प्रारंभिक मान्यताओं के बावजूद, इन कार्यों के सटीक शब्दार्थ में एक व्यापक स्पेक्ट्रम शामिल है, जिसमें सख्त और गैर-सख्त मोड और ब्राउज़र संगतता विचारों के बीच अंतर शामिल है।
शब्दार्थ
नीचे दी गई तालिका सारांशित करती है ब्लॉक-स्तरीय फ़ंक्शन शब्दार्थ के प्रमुख पहलू:
निष्पादन पर्यावरण | ब्लॉक के बाहर दृश्यमान | ब्लॉक के शीर्ष पर फहराया गया | TDZ |
---|---|---|---|
गैर-सख्त, कोई वेब एक्सटेंशन नहीं | हाँ, पसंद है var | हां | कोई नहीं |
सख्त, कोई वेब एक्सटेंशन नहीं | नहीं | हां | कोई नहीं |
गैर-सख्त, वेब एक्सटेंशन | हां, जैसे var | हां | कोई नहीं |
सख्त, वेब एक्सटेंशन | नहीं | हां, दो बार (फ़ंक्शन और ब्लॉक) | फ़ंक्शन-स्कोप्ड बाइंडिंग पहले अपरिभाषित है घोषणा |
सख्त मोड निहितार्थ
इस संदर्भ में "सख्त मोड" की अवधारणा का तात्पर्य [[सख्त]] आंतरिक स्लॉट से है फ़ंक्शन ऑब्जेक्ट, फ़ंक्शन की कठोरता नहीं। इसलिए, एक गैर-सख्त आसपास के कोड के भीतर "सख्त उपयोग करें" के साथ एक फ़ंक्शन घोषणा को शामिल करने वाले कोड स्निपेट को अभी भी "गैर-सख्त" माना जाता है।
वेब एक्सटेंशन
वेब एक्सटेंशन" केवल "समझदार" फ़ंक्शन स्टेटमेंट उपस्थिति वाले गैर-सख्त (मैला) कोड पर लागू होते हैं। वेब संगतता शब्दार्थ के साथ मैला मोड में, एक ब्लॉक के भीतर एक फ़ंक्शन घोषणा को निम्नानुसार नियंत्रित किया जाता है:
संक्षेप में, इस व्यवहार के परिणामस्वरूप एक ही नाम के साथ दो अलग-अलग बाइंडिंग होती हैं, एक ब्लॉक-स्कोप्ड और दूसरा फ़ंक्शन-स्कोप्ड।
निष्कर्ष
जबकि ES6 में ब्लॉक-स्तरीय फ़ंक्शन विस्तारित कार्यक्षमता प्रदान करते हैं, सख्त मोड और वेब संगतता के बीच परस्पर क्रिया सहित उनके सटीक शब्दार्थ को समझना, उचित उपयोग सुनिश्चित करने और संभावित से बचने के लिए महत्वपूर्ण है नुकसान.
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3