JavaScript में null, undefined और खाली मानों की जाँच: एक संपूर्ण गाइड

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

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

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

null, undefined और खालीपन की जाँच हर JavaScript डेवलपर का दर्द क्यों है?

\n\n

क्या आपने कभी सोचा है: "मैं फिर से if (x !== null && x !== undefined && x !== '') जैसी यह बोझिल संरचना क्यों लिख रहा हूँ?" यदि हाँ, तो आप अकेले नहीं हैं। Stack Overflow पर प्रश्न "Is there a standard function to check for null, undefined, or blank variables in JavaScript?" को हज़ारों बार देखा गया है। और यह कोई संयोग नहीं है।

\n\n

JavaScript में कोई अंतर्निहित फ़ंक्शन नहीं है जो एक साथ सब कुछ जाँच सके। लेकिन इसका मतलब यह नहीं है कि हम कष्ट सहने को अभिशप्त हैं। इस लेख में, हम समझेंगे कि ऐसा कोई फ़ंक्शन क्यों नहीं है, इस सीमा को शानदार ढंग से कैसे पार किया जाए, और अपना स्वयं का आदर्श हेल्पर लिखेंगे।

\n\n

क्या आप जाँचों की अराजकता को स्वच्छ, समझने योग्य कोड में बदलने के लिए तैयार हैं? चलिए शुरू करते हैं!

\n\n

JavaScript में null, undefined और blank (खाली स्ट्रिंग) क्या हैं?

\n\n

"जादुई गोली" खोजने से पहले, आइए समझें कि हम किससे निपट रहे हैं। ये तीन अवधारणाएँ तीन अलग-अलग प्राणी हैं, और इन्हें भ्रमित करना खतरनाक है।

\n\n
    \n
  • undefined — वेरिएबल घोषित किया गया है, लेकिन उसे कोई मान नहीं दिया गया। यह JavaScript का "डिफ़ॉल्ट मान" है।
  • \n
  • null — वेरिएबल मौजूद है, लेकिन उसे जानबूझकर "कुछ नहीं" दिया गया है। यह डेवलपर का सचेत निर्णय है।
  • \n
  • blank (खाली स्ट्रिंग) — '' या ""। स्ट्रिंग मौजूद है, लेकिन उसमें कोई वर्ण नहीं हैं।
  • \n
\n\n

मुख्य अंतर: null एक ऑब्जेक्ट है (हाँ, यह JS का एक ऐतिहासिक बग है जो अब एक फीचर है), undefined एक विशेष प्रकार है, और खाली स्ट्रिंग एक स्ट्रिंग है।

\n\n
let a; // undefined\nlet b = null; // null\nlet c = ''; // खाली स्ट्रिंग (blank)\nconsole.log(typeof a); // "undefined"\nconsole.log(typeof b); // "object" (हाँ, यह सही है!)\nconsole.log(typeof c); // "string"
\n\n

अब कल्पना करें: आप जाँचना चाहते हैं कि वेरिएबल किसी भी अर्थ में "खाली" है। सामान्य जाँच if (!value) null और undefined के लिए काम करेगी, लेकिन क्या यह खाली स्ट्रिंग को ध्यान में नहीं रखेगी? नहीं, यह ध्यान में रखेगी! क्योंकि खाली स्ट्रिंग एक falsy मान है। लेकिन एक पेच है...

\n\n

सिर्फ if (!value) एक बुरा विचार क्यों है?

\n\n

हाँ, if (!value) null, undefined, '', 0, false और NaN को पकड़ लेगा। लेकिन क्या होगा यदि 0 या false आपके वेरिएबल के लिए मान्य मान हैं? उदाहरण के लिए, यदि आप कार्ट में वस्तुओं की संख्या जाँच रहे हैं, तो 0 सामान्य है, "खालीपन" नहीं।

\n\n
function processOrder(itemCount) {\n    if (!itemCount) {\n        console.log('त्रुटि: कोई वस्तु नहीं!');\n    } else {\n        console.log('ऑर्डर प्रोसेस कर रहे हैं...');\n    }\n}\nprocessOrder(0); // त्रुटि: कोई वस्तु नहीं! — लेकिन यह कोई त्रुटि नहीं है, यह 0 वस्तुएँ हैं
\n\n

यही कारण है कि हमें एक विशिष्ट फ़ंक्शन की आवश्यकता है, न कि "सत्यता" पर एक सार्वभौमिक जाँच की।

\n\n

मानक फ़ंक्शन? नहीं, लेकिन मानक पैटर्न हैं

\n\n

प्रश्न "Is there a standard function?" का उत्तर नहीं है। लेकिन JavaScript लचीले उपकरण प्रदान करता है ताकि आप अपना खुद का लिख सकें। और यह और भी बेहतर है, क्योंकि आपका फ़ंक्शन आपकी व्यावसायिक आवश्यकताओं से बिल्कुल मेल खाएगा।

\n\n

विकल्प 1: सबसे सरल जाँच (सख्त)

\n\n

यदि आपको केवल null और undefined की जाँच करनी है — तो सख्त तुलना (===) का उपयोग करें। यह सबसे सुरक्षित तरीका है।

\n\n
function isNullOrUndefined(value) {\n    return value === null || value === undefined;\n}\n\nconsole.log(isNullOrUndefined(null)); // true\nconsole.log(isNullOrUndefined(undefined)); // true\nconsole.log(isNullOrUndefined('')); // false\nconsole.log(isNullOrUndefined(0)); // false
\n\n

लाभ: 0 और खाली स्ट्रिंग को "कुछ नहीं" से भ्रमित नहीं करता। नुकसान: खालीपन की जाँच नहीं करता

ब्लॉग

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