जावास्क्रिप्ट में, दो मूल्य हैं जो मूल रूप से कहते हैं 'मैं मौजूद नहीं हूं' - undefinedऔर null।
एक संपत्ति जिसके लिए एक प्रोग्रामर ने कुछ भी नहीं सौंपा है undefined, लेकिन एक संपत्ति बनने के लिए null, nullउसे स्पष्ट रूप से सौंपा जाना चाहिए।
मैंने एक बार सोचा था कि इसके लिए एक आवश्यकता थी nullक्योंकि undefinedएक आदिम मूल्य और nullएक वस्तु है। यह नहीं होगा, भले ही typeof nullउपज होगी 'object': वास्तव में, दोनों ही आदिम मूल्य हैं - जिसका अर्थ है कि न तो undefinedऔर न ही nullएक निर्माता फ़ंक्शन से लौटाया जा सकता है, क्योंकि दोनों को एक खाली वस्तु में बदल दिया जाएगा (किसी को निर्माणकर्ताओं में विफलता की घोषणा करने के लिए एक त्रुटि फेंकनी होगी)।
वे दोनों falseबूलियन संदर्भों में भी मूल्यांकन करते हैं । एकमात्र वास्तविक अंतर जो मैं सोच सकता हूं, वह यह है कि एक मूल्यांकन करता है NaN, दूसरा 0संख्यात्मक संदर्भों में।
तो दोनों क्यों है undefinedऔर nullअगर यह सिर्फ उन प्रोग्रामर्स को भ्रमित करता है जो गलत तरीके से चेक nullकर रहे हैं, तो यह पता लगाने की कोशिश कर रहे हैं कि संपत्ति सेट की गई है या नहीं?
मैं जानना चाहता हूं कि क्या किसी के पास एक उचित उदाहरण है जहां इसका उपयोग करना आवश्यक है nullजो undefinedइसके बजाय का उपयोग करके व्यक्त नहीं किया जा सकता है ।
तो आम सहमति यह प्रतीत होती है कि undefined'ऐसी कोई संपत्ति नहीं है' का nullअर्थ है कि 'संपत्ति मौजूद नहीं है, लेकिन कोई मूल्य नहीं है'।
मैं उसके साथ रह सकता था यदि जावास्क्रिप्ट कार्यान्वयन वास्तव में इस व्यवहार को लागू करेगा - लेकिन undefinedयह पूरी तरह से वैध आदिम मूल्य है, इसलिए इसे आसानी से इस अनुबंध को तोड़ने के लिए मौजूदा गुणों को सौंपा जा सकता है। इसलिए, यदि आप यह सुनिश्चित करना चाहते हैं कि यदि कोई संपत्ति मौजूद है, तो आपको inऑपरेटर या hasOwnProperty()वैसे भी उपयोग करना होगा । तो एक बार फिर से: अलग-अलग मूल्यों के लिए व्यावहारिक उपयोग क्या है undefinedऔर null?
मैं वास्तव में उपयोग करता undefinedहूं जब मैं गुणों के मूल्यों को अब उपयोग में नहीं लेना चाहता हूं, लेकिन जो मैं नहीं करना चाहता हूं delete। क्या मुझे nullइसके बजाय उपयोग करना चाहिए ?
In JavaScript, there are two values which basically say 'I don't exist' - undefined and null.नहीं, केवल यही undefinedकहता है।
undefined।