अनडिफाइंड बनाम नल के बीच मतभेद
जावास्क्रिप्ट में, वेरिएबल रिमोट कंट्रोल की तरह हैं जो वास्तव में वस्तु को नियंत्रित करता है। यदि किसी भी वस्तु को नियंत्रित करने के लिए रिमोट कंट्रोल प्रोग्राम नहीं किया गया है, तो इसे अनडिफाइंड के रूप में टैग किया जा सकता है। दूसरी तरफ, यदि रिमोट कंट्रोल प्रोग्राम किया गया है लेकिन कुछ भी नहीं करना है, तो इसे नल को असाइन किया जा सकता है।
तो अनडिफाइंड एक विशेष प्रकार है जबकि नल जावास्क्रिप्ट में एक वस्तु है । जावास्क्रिप्ट कोड स्निपेट के नीचे आउटपुट को अनडिफाइंड के रूप में दिया जाएगा।
var x;
console.log (x); ð undefined |
अगर कोई नल के प्रकार की जांच करता है, तो यह आउटपुट को “वस्तु” के रूप में प्रिंट करेगा जैसा कि नीचे जावास्क्रिप्ट कोड स्निपेट में दिखाया गया है:
console.log (टाइप नल);
वस्तु |
इसलिए, हम कह सकते हैं कि अनडिफाइंड एक चर है जिसका घोषित किया गया है, लेकिन चर का एक मूल्य अभी तक परिभाषित नहीं किया गया है। अपरिभाषित प्रकार “अनडिफाइंड” है, जिसे नीचे जावास्क्रिप्ट कोड स्निपेट से चेक किया जा सकता है:
var test;Console.log (typeof test);
ð undefined |
कोई भी एक चर घोषित कर सकता है और उसके बाद इसे “अनडिफाइंड” असाइन कर सकता है:
var test = undefined;Console.log (test);
ð undefined |
नल एक असाइनमेंट मान है, इसे किसी वैरिएबल को कोई मान के प्रतिनिधित्व के रूप में असाइन नहीं किया जा सकता है। इस प्रकार, अनडिफाइंड एक प्रकार है जबकि शून्य एक वस्तु है। असाइन किए गए चर को जावास्क्रिप्ट द्वारा अनडिफाइंड डिफ़ॉल्ट मान के साथ प्रारंभ किया जाता है जबकि जावास्क्रिप्ट स्वचालित रूप से शून्य को स्वचालित रूप से शून्य करने के लिए सेट नहीं करता है, इसे प्रोग्रामेटिक रूप से किया जाना चाहिए।
अनडिफाइंड बनाम नल के बीच सिर तुलना के लिए सिर
नीचे जावास्क्रिप्ट अनडिफाइंड बनाम नल के बीच शीर्ष 8 तुलना है
जावास्क्रिप्ट अनडिफाइंड बनाम नल के बीच महत्वपूर्ण अंतर
नीचे बिंदु की सूची अनडिफाइंड बनाम नल के बीच अंतर का वर्णन करती है
- अनडिफाइंड मतलब है कि एक चर घोषित कर दिया गया है लेकिन अभी तक एक मान असाइन नहीं किया गया है।
- “शून्य” एक असाइनमेंट मान है जिसका अर्थ है “कोई मूल्य नहीं”।
- “अनडिफाइंड” और “शून्य” दोनों प्राइमेटिव हैं।
- “अनडिफाइंड” प्रकार अनिर्धारित है।
- “शून्य” प्रकार वस्तु का है।
- जावास्क्रिप्ट ने कभी भी “शून्य” के लिए कोई मान निर्धारित नहीं किया है, इसका उपयोग प्रोग्रामर द्वारा इंगित करने के लिए किया जाता है कि “वार” का कोई मूल्य नहीं है।
- जावास्क्रिप्ट ने “अनडिफाइंड” के डिफ़ॉल्ट मान के साथ एक असाइन किए गए चर सेट को सेट किया है।
- “अनडिफाइंड” जेएसओएन (जावा स्क्रिप्ट ऑब्जेक्ट नोटेशन) में मान्य मान नहीं है जबकि “शून्य” जेएसओएन में मान्य मान है।
- कोई यह जांच सकता है कि कोई वैरिएबल अनडिफाइंड है या नहीं: वैरिएबल === “अनडिफाइंड”
- यह जांचने के लिए कि कोई चर उपयोग कर रहा है या नहीं: variable === null
- समानता ऑपरेटर उन्हें समान मानेंगे जबकि पहचान ऑपरेटर उन्हें समान रूप से नहीं मानेंगे। null === undefined //false null == undefined //true
- मान “शून्य” किसी वस्तु मान की जानबूझकर अनुपस्थिति का प्रतिनिधित्व करता है।यह जावास्क्रिप्ट के आदिम मूल्यों में से एक है।
- नल एक शाब्दिक के साथ लिखा गया है: “शून्य”।यह वैश्विक वस्तु की संपत्ति के लिए पहचानकर्ता नहीं है, जैसे “अनडिफाइंड” हो सकता है। “शून्य” पहचान की कमी देता है, इसका मतलब है कि कोई ऑब्जेक्ट करने के लिए एक चर बिंदु।
- “अनडिफाइंड” एक वैश्विक चर है जो जावास्क्रिप्ट रन टाइम पर बनाता है।
- जब कोई “शून्य” पर अंकगणितीय रूपांतरण करता है, तो मान निर्धारित 0 होता है, यह रूपांतरण सत्यापित किया जा सकता है: var v1 = 3 + null; console.log (v1); // 3
- “अनडिफाइंड” अंकगणितीय रूपांतरण नहीं करता है जैसे “शून्य” करता है, अगर हम इसे किसी संख्या में जोड़ने का प्रयास करते हैं, तो आपको NaN (Not-a-Number) त्रुटि मिल जाएगी।
तुलना तालिका अनडिफाइंड बनाम नल
नीचे अंक की सूची है, जावास्क्रिप्ट अनडिफाइंड बनाम नल के बीच तुलना का वर्णन करें
अनडिफाइंड बनाम नल के बीच तुलना का आधार | अनडिफाइंड | शून्य |
परिभाषा | चर घोषित कर दिया गया है लेकिन अभी तक एक मूल्य असाइन नहीं किया गया है | असाइनमेंट मान जिसका अर्थ है “कोई मूल्य नहीं” |
प्रकार | अनडिफाइंड | वस्तु |
जेएसओएन | अमान्य | मान्य |
प्रकृति | परिवर्तनीय घोषित लेकिन अभी तक असाइन नहीं किया गया है | वस्तु मूल्य की जानबूझकर अनुपस्थिति का प्रतिनिधित्व करें |
चेक | typeof variableName === “अनडिफाइंड” | variableName === null |
अंकगणित | संख्या-संख्या (NaN) त्रुटि | शून्य मान के रूप में माना जाता है |
तुलना | समानता ऑपरेटर सच हो जाएगा | पहचान ऑपरेटर झूठी वापसी करेगा |
पहचानकर्ता | वैश्विक वस्तु की संपत्ति के लिए पहचानकर्ता हो सकता है | वैश्विक वस्तु की संपत्ति के लिए पहचानकर्ता नहीं |
निष्कर्ष – अनडिफाइंड बनाम नल
ज्यादातर समय, लोग अनडिफाइंड बनाम नल के बीच अंतर को गलत समझते हैं। यदि अनडिफाइंड बनाम नल के बीच भेद अस्पष्ट रहता है, तो यह कुछ परीक्षण मामलों में मुद्दों का कारण बन सकता है।
एक चर को “अनडिफाइंड” कहा जा सकता है यदि इसे घोषित किया गया है लेकिन इसे कोई मूल्य नहीं दिया गया है। दूसरी तरफ, “शून्य” एक मान है जिसे एक चर को आवंटित किया जा सकता है और “कोई मान नहीं” का प्रतिनिधित्व किया जा सकता है। इसलिए “अनडिफाइंड” एक चर प्रकार है, जहां “शून्य” एक वस्तु मान है।
कुछ भी नहीं के लिए “शून्य” को प्लेस धारक माना जाता है। इसका मतलब है कि हमने जानबूझकर एक चर के लिए एक मूल्य असाइन किया है और इस प्रकार एक चर के लिए कुछ भी मूल्य मानते हैं। शून्य या अनडिफाइंड की जांच करते समय, किसी को समान प्रदर्शन प्रकार रूपांतरण के रूप में समानता (==) और पहचान (===) ऑपरेटरों से अवगत होना चाहिए।
typeof null //object
type of undefined // undefined null === undefined //false null == undefined //true null == null //true null === null //true !null //true isNaN ( 1 + null ) //false isNaN ( 1 + undefined ) //true |
इसलिए, जब प्रकार में अंतर की बात आती है, तो “शून्य” एक वस्तु होता है जिसमें एक वैध मान होता है जिसमें कोई गुण नहीं होता है, नॉन-म्यूटेबल होता है और सिस्टम में एक ही उदाहरण मौजूद होता है। कोई “प्रकार” ऑपरेटर का उपयोग करके “शून्य” की प्रकृति को सत्यापित कर सकता है। इस ऑपरेटर का उपयोग आउटपुट को “वस्तु” के रूप में देगा। यदि हम किसी वस्तु पर “प्रकार” ऑपरेटर का उपयोग करते हैं जो एक अनडिफाइंड सूची के सभी मानदंडों से संबंधित है, तो हम वस्तु प्रकार को “अनडिफाइंड” के रूप में प्राप्त करेंगे।
अनडिफाइंड बनाम नल के अंतर एक और बड़ा अंतर प्राचीन प्रकार के रूपांतरण के साथ निष्कर्ष निकाला जा सकता है। जिस तरह से अनडिफाइंड बनाम नल को प्राचीन प्रकार में परिवर्तित किया जाता है वह भिन्नता के लिए महत्वपूर्ण क्षेत्र है। “शून्य” पर अंकगणितीय रूपांतरण करते समय, मान निर्धारित शून्य है। हालांकि, “अपरिभाषित” में ऐसे रूपांतरण नहीं होते हैं। यदि हम किसी संख्या में “अनडिफाइंड” जोड़ने का प्रयास करते हैं, तो आपको एक संख्या में त्रुटि मिलेगी।
असली दुनिया परिदृश्य में “शून्य” का उपयोग बहुत आसान हो सकता है। उदाहरण के लिए – कुछ लोगों के पास मध्य नाम नहीं है। इसलिए, इस मामले में, किसी व्यक्ति वस्तु में मध्य नाम चर के लिए मान शून्य को असाइन करना बेहतर होता है। यदि कोई व्यक्ति व्यक्तिगत वस्तु में मध्य नाम चर का उपयोग कर रहा है और इसका मान “अनडिफाइंड” है। फिर यह पता लगाने का कोई तरीका नहीं है कि डेवलपर इस चर को प्रारंभ करने के लिए भूल गया है या उसके पास कोई मूल्य नहीं है। यदि इसे शून्य के रूप में असाइन किया गया है, तो इसका मतलब है कि कोई उपयोगकर्ता आसानी से अनुमान लगा सकता है कि मध्य नाम परिवर्तक का कोई मूल्य नहीं है।
तो, संक्षेप में, “शून्य” और “अनडिफाइंड” के अलग-अलग अर्थ हैं। जबकि “शून्य” एक विशेष कीवर्ड है जो मान की अनुपस्थिति को इंगित करता है, “अपरिभाषित” का अर्थ है “यह अस्तित्व में नहीं है”। ऐसी स्थितियां होती हैं जब यह “शून्य का मूल्य” और “कोई मूल्य नहीं” को अलग करने में मदद करती है। किसी सूची के लिए अद्यतन भेजते समय, “शून्य” का अर्थ हो सकता है, इस फ़ील्ड को “शून्य” के साथ प्रतिस्थापित करें, और अपरिभाषित का अर्थ “स्पर्श न करें” हो सकता है। डिफ़ॉल्ट फ़ंक्शन पैरामीटर से निपटने पर: अनडिफाइंड अर्थ “डिफ़ॉल्ट मान का उपयोग करें” और शून्य का अर्थ है “शून्य का उपयोग करें”। जावास्क्रिप्ट में दो अलग-अलग चीजों के रूप में अनडिफाइंड बनाम नल होने के कारण ईमानदारी से दर्दनाक हो सकता है, हालांकि, यदि कोई जावास्क्रिप्ट डेवलपर है, तो उसे यह पसंद हो सकता है।
अनुशंसित लेख
यह अनडिफाइंड बनाम नल के बीच शीर्ष अंतर के लिए एक मार्गदर्शक रहा है। यहां हम इन्फोग्राफिक्स, और तुलना तालिका के साथ जावास्क्रिप्ट अनडिफ़ाइंड बनाम नल कुंजी मतभेदों पर भी चर्चा करते हैं। आप निम्नलिखित लेखों पर भी नज़र डाल सकते हैं –