JavaScript में undefined या null: 2025 में वेरिएबल की जाँच कैसे करें

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

"वेरिएबल परिभाषित नहीं है": यह सवाल सभी को क्यों परेशान करता है?

\n\n

यदि आपने कभी JavaScript में कोड लिखा है, तो आप निश्चित रूप से इस स्थिति का सामना किया होगा: आप कोड चलाते हैं, और कंसोल में लाल लिखावट दिखती है Uncaught TypeError: Cannot read properties of undefined। या इससे भी बुरा — null is not an object। परिचित लगता है? यह सबसे आम त्रुटियों में से एक है जो सभी स्तरों के डेवलपर्स को परेशान करती है।

\n\n

Stack Overflow पर सवाल "How can I determine if a variable is 'undefined' or 'null'?" ने हजारों बार देखा गया और सैकड़ों उत्तर प्राप्त किए। और यह कोई संयोग नहीं है: JavaScript में ये दो मान समान हैं, लेकिन अलग-अलग व्यवहार करते हैं। 2025 में, जब कोड अधिक जटिल हो जाता है और प्रोजेक्ट बड़े हो जाते हैं, undefined और null की सही जाँच करने की क्षमता "जानना अच्छा होगा" से "जानना अनिवार्य है" में बदल जाती है।

\n\n

इस लेख में, हम सरल से लेकर उन्नत तक, जाँच के सभी तरीकों पर चर्चा करेंगे, और दिखाएंगे कि आधुनिक विकास में किन विधियों का उपयोग करना चाहिए। चलिए शुरू करते हैं!

\n\n

undefined बनाम null: अंतर क्या है?

\n\n

जाँच करने से पहले, आइए समझें कि हम किसके साथ काम कर रहे हैं। JavaScript में undefined और null दो अलग-अलग प्रिमिटिव मान हैं, प्रत्येक का अपना प्रकार है।

\n\n

undefined

\n

undefined वह मान है जो स्वचालित रूप से एक वेरिएबल को असाइन किया जाता है यदि आपने इसे घोषित किया है लेकिन मान सेट नहीं किया है। साथ ही, एक फ़ंक्शन undefined लौटाता है यदि उसमें स्पष्ट return नहीं है।

\n\n
let myVar;\nconsole.log(myVar); // undefined\n\nfunction doNothing() {}\nconsole.log(doNothing()); // undefined\n\nconsole.log(someNonExistentVariable); // ReferenceError, लेकिन यदि किसी ऑब्जेक्ट की प्रॉपर्टी तक पहुँचते हैं:\nconst obj = {};\nconsole.log(obj.prop); // undefined\n
\n\n

null

\n

null वह मान है जिसे डेवलपर जानबूझकर असाइन करता है। इसका अर्थ है "खाली", "कुछ नहीं", "मान अनुपस्थित"। typeof के दृष्टिकोण से null एक ऑब्जेक्ट है (हाँ, यह एक ऐतिहासिक बग है, लेकिन अब यह एक फीचर बन गया है)।

\n\n
let myVar = null;\nconsole.log(myVar); // null\nconsole.log(typeof myVar); // "object" — हाँ, यह सही है!\n
\n\n

मुख्य अंतर: undefined का अर्थ है "अभी तक असाइन नहीं किया गया", जबकि null का अर्थ है "जानबूझकर खाली"। लेकिन गैर-सख्त तुलना में, वे बराबर हैं:

\n\n
console.log(null == undefined); // true\nconsole.log(null === undefined); // false\n
\n\n

इसी गैर-सख्त समानता के कारण भ्रम पैदा होता है। इसलिए 2025 की सर्वोत्तम प्रथाएँ सख्त तुलना (===) का उपयोग करने की सलाह देती हैं।

\n\n

undefined और null की जाँच करने के शीर्ष 5 तरीके

\n\n

आइए सबसे सरल से लेकर आधुनिक तक, सभी लोकप्रिय तरीकों पर चर्चा करें। हम प्रत्येक का मूल्यांकन तीन मानदंडों पर करेंगे: पठनीयता, विश्वसनीयता और प्रदर्शन।

\n\n

1. सख्त तुलना (===) — स्वर्ण मानक

\n

सबसे सीधा और समझने योग्य तरीका है कि वेरिएबल की सीधे undefined या null से === के माध्यम से तुलना करें।

\n\n
let value = null;\n\n// null की जाँच\nif (value === null) {\n    console.log('यह null है');\n}\n\n// undefined की जाँच\nif (value === undefined) {\n    console.log('यह undefined है');\n}\n\n// null या undefined की जाँच (अलग-अलग)\nif (value === null || value === undefined) {\n    console.log('मान अनुपस्थित है');\n}\n
\n\n

यह सर्वोत्तम प्रथा क्यों है?

\n
    \n
  • अधिकतम पठनीय — कोई भी डेवलपर समझ जाएगा कि आप क्या जाँच रहे हैं।
  • \n
  • कोई अप्रत्याशित प्रकार रूपांतरण नहीं।
  • \n
  • JavaScript के सभी संस्करणों में काम करता है, जिसमें सबसे पुराने भी शामिल हैं।
  • \n
\n\n

कमी: यदि आपको एक साथ दोनों मानों की जाँच करनी है, तो आपको दो शर्तें लिखनी होंगी। लेकिन इसे ऊपर दिए गए उदाहरण की तरह || ऑपरेटर से हल किया जा सकता है।

\n\n

2. नलिश कोलेसिंग ऑपरेटर (??) — एक नई सुविधा जो स्थापित हो गई है

\n

ES2020 से शुरू होकर, JavaScript में ?? ऑपरेटर आया (nu

ब्लॉग

पुस्तक अनुशंसाएँ