जावास्क्रिप्ट में, दो मूल्य हैं जो मूल रूप से कहते हैं 'मैं मौजूद नहीं हूं' - 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
।