परिचय: यह कार्य जितना लगता है उससे कहीं अधिक सरल क्यों है
\n\nहर डेवलपर जिसने कभी JavaScript में कोड लिखा है, उसने ऐसी स्थिति का सामना किया है जहाँ यह जाँचना आवश्यक होता है कि सामने वाली स्ट्रिंग खाली है, या शायद वह null या undefined है। यह सोचना आसान है कि इससे सरल क्या हो सकता है? लेकिन ईमानदारी से कहें: आपने कितनी बार if (str == "") लिखा और जब वेरिएबल null निकला तो बग मिला? और कितनी बार आपने undefined पर .trim() कॉल करने की कोशिश की और कंसोल में लाल त्रुटि देखी?
यह विषय Stack Overflow पर दसियों हज़ार व्यूज़ वाले सबसे लोकप्रिय प्रश्नों में से एक है। और यह उचित भी है। JavaScript में कई बारीकियाँ हैं जो एक साधारण जाँच को एक खदान के मैदान में बदल देती हैं। इस लेख में, हम सबसे स्पष्ट से लेकर पेशेवर तक, सभी संभावित तरीकों पर चर्चा करेंगे और पता लगाएंगे कि आपके प्रोजेक्ट में किसका उपयोग करना सबसे अच्छा है।
\n\nहम बात करेंगे कि falsy मान क्या होते हैं, ऑपरेटर == और === कैसे काम करते हैं, और क्यों "" और 0, false के समान नहीं हैं। लेख के अंत तक, आपको ठीक-ठीक पता चल जाएगा कि एक सार्वभौमिक जाँच कैसे लिखें जो विफल न हो।
समस्या: "खाली" स्ट्रिंग किसे माना जाए?
\n\nकोड लिखने से पहले, हमें स्पष्ट रूप से परिभाषित करना होगा कि हम क्या जाँच रहे हैं। "How do I check for an empty/undefined/null string in JavaScript?" प्रश्न के संदर्भ में, हमारा आमतौर पर तीन अवस्थाओं से मतलब होता है:
\n\n- \n
- खाली स्ट्रिंग (
""या'') — शून्य लंबाई वाली स्ट्रिंग। \n - null — जानबूझकर मान की अनुपस्थिति। \n
- undefined — वेरिएबल घोषित किया गया है लेकिन प्रारंभ नहीं किया गया। \n
लेकिन एक चौथा, अंतर्निहित मामला भी है: केवल रिक्त स्थानों से बनी स्ट्रिंग (" ")। व्यावसायिक तर्क के दृष्टिकोण से इसे अक्सर "खाली" माना जाता है। हम सभी विकल्पों पर चर्चा करेंगे।
विधि 1: तार्किक रूपांतरण (सबसे सरल)
\n\nसबसे लोकप्रिय और संक्षिप्त तरीका इस तथ्य का उपयोग करना है कि JavaScript तार्किक संदर्भ में मानों को स्वचालित रूप से true या false में बदल देता है।
\n\nlet str = "";\n\nif (!str) {\n console.log("स्ट्रिंग खाली, null या undefined है");\n} else {\n console.log("स्ट्रिंग खाली नहीं है");\n}\n\n\nयह कोड "", null, undefined, 0, NaN और false के लिए काम करेगा। क्यों? क्योंकि JavaScript में ये सभी मान falsy माने जाते हैं। यदि आप सुनिश्चित हैं कि वेरिएबल एक स्ट्रिंग है (या null/undefined हो सकता है), तो यह विधि पर्याप्त है।
लेकिन एक समस्या है: यदि वेरिएबल 0 (संख्या) के बराबर है, तो जाँच भी "खाली" कहेगी। यदि यह महत्वपूर्ण है, तो यह विधि उपयुक्त नहीं है।
विधि 2: सख्त तुलना (स्पष्ट नियंत्रण)
\n\nयदि आप अधिकतम सटीकता चाहते हैं और केवल तीन निर्दिष्ट अवस्थाओं की जाँच करना चाहते हैं, तो सख्त तुलना (===) का उपयोग करें।
function isEmptyOrNull(str) {\n return str === "" || str === null || str === undefined;\n}\n\nconsole.log(isEmptyOrNull("")); // true\nconsole.log(isEmptyOrNull(null)); // true\nconsole.log(isEmptyOrNull(undefined)); // true\nconsole.log(isEmptyOrNull("hello")); // false\nconsole.log(isEmptyOrNull(0)); // false (संख्या पास नहीं होगी)\n\n\nयह कोड बिना किसी आश्चर्य के काम करता है। यह 0 या false को खाली स्ट्रिंग के साथ भ्रमित नहीं करता है। लेकिन यह रिक्त स्थानों वाली स्ट्रिंग को संभालता नहीं है।
विधि 3: Trim + जाँच ("वास्तविक" खालीपन के लिए)
\n\nअक्सर उपयोगकर्ता फॉर्म में रिक्त स्थान दर्ज करते हैं, और स्ट्रिंग " " देखने में खाली लगती है। ऐसे मामलों को पकड़ने के लिए, .trim() विधि का उपयोग करके रिक्त स्थानों को हटाना आवश्यक है।
function isBlank(str) {\n return !str || str.trim() === "";\n}\n\nconsole