कंसोल पर जावास्क्रिप्ट वेरिएबल घोषणा का परिणाम "अपरिभाषित" क्यों होता है
जब सिंटैक्स var a का उपयोग करके जावास्क्रिप्ट कंसोल में एक वेरिएबल घोषित किया जाता है;, यह "अपरिभाषित" प्रिंट करता है। यह व्यवहार आश्चर्यजनक हो सकता है और इसे अक्सर स्टैक ओवरफ़्लो पोस्ट में संबोधित किया जाता है। हालाँकि, ये चर्चाएँ पूरी तरह से यह समझाने में विफल हैं कि ऐसा क्यों होता है।
कंसोल का व्यवहार जावास्क्रिप्ट द्वारा अभिव्यक्तियों का मूल्यांकन करने के तरीके का प्रत्यक्ष परिणाम है। कथन var a; का मूल्यांकन करते समय, जावास्क्रिप्ट इसे अपने आप में एक अभिव्यक्ति मानता है और अपना परिणाम देता है, जो वास्तव में "अपरिभाषित" है। प्रारंभिक मान के साथ, जैसे कि var a = 3। आश्चर्यजनक रूप से, जावास्क्रिप्ट में सभी परिवर्तनीय घोषणा कथन (var और फ़ंक्शन दोनों) "असली" परिणाम के साथ कोई अन्य कथन होने पर "अपरिभाषित" लौटाते हैं।
उदाहरण के लिए :
> var a = 3; अपरिभाषित > वर ए = 3; ए = 4; 4 > वर ए = 3; ए = 4; वर ए = 5; फ़ंक्शन f() {}; 4
> var a = 3; undefined > var a = 3; a = 4; 4 > var a = 3; a = 4; var a = 5; function f() {}; 4यदि मूल्यांकन किए गए कार्यक्रम का समापन मूल्य खाली है तो "अपरिभाषित" लौटाता है।
हालाँकि, eval यह भी निर्दिष्ट करता है कि यदि मूल्यांकन किए गए प्रोग्राम का पूर्णता मान खाली नहीं है, तो अंतिम कथन का मान वापस कर दिया जाता है। अंतिम उदाहरण में, a = 4 अंतिम कथन है, इसलिए इसका मान (4) लौटाया जाता है। भाव. यह व्यवहार भ्रमित करने वाला हो सकता है, विशेष रूप से वेरिएबल्स को प्रारंभिक मान निर्दिष्ट करते समय, लेकिन यह जावास्क्रिप्ट अभिव्यक्तियों और कथनों के अंतर्निहित मूल्यांकन तंत्र से उत्पन्न होता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3