जावास्क्रिप्ट, सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक होने के नाते, डेवलपर्स को विभिन्न तार्किक संचालन को संभालने के लिए ऑपरेटरों की एक श्रृंखला प्रदान करता है। इनमें से, लॉजिकल ओआर (||) और नुलिश कोलेसिंग (??) ऑपरेटर डिफ़ॉल्ट मानों को प्रबंधित करने और अशक्त मानों को संभालने के लिए मौलिक उपकरण हैं। यह आलेख इन दोनों ऑपरेटरों के बीच अंतर, उनके उपयोग के मामलों और उनके उपयोग को स्पष्ट करने के लिए व्यावहारिक, जटिल उदाहरणों पर प्रकाश डालेगा।
जावास्क्रिप्ट में लॉजिकल या (||) ऑपरेटर का व्यापक रूप से इसके ऑपरेंड के बीच पहला सत्य मान या यदि कोई भी सत्य नहीं है तो अंतिम मान लौटाने के लिए उपयोग किया जाता है। इसका उपयोग मुख्य रूप से डिफ़ॉल्ट मान सेट करने के लिए किया जाता है।
result = operand1 || operand2;
द || ऑपरेटर बाएं से दाएं मूल्यांकन करता है, यदि यह सत्य है तो पहला ऑपरेंड लौटाता है; अन्यथा, यह दूसरे ऑपरेंड का मूल्यांकन करता है और लौटाता है।
let userInput = ''; let defaultText = 'Hello, World!'; let message = userInput || defaultText; console.log(message); // Output: 'Hello, World!'
इस उदाहरण में, userInput एक खाली स्ट्रिंग (झूठा) है, इसलिए defaultText वापस आ गया है।
let firstName = null; let lastName = 'Doe'; let name = firstName || lastName || 'Anonymous'; console.log(name); // Output: 'Doe'
यहां, पहला नाम शून्य (झूठा) है, इसलिए अंतिम नाम सत्य होने के कारण वापस कर दिया गया है।
की मुख्य सीमा || ऑपरेटर का अर्थ यह है कि यह कई मानों को मिथ्या मानता है, जैसे 0, NaN, '', असत्य, शून्य और अपरिभाषित। जब ये मान मान्य होने का इरादा रखते हैं तो इससे अप्रत्याशित परिणाम हो सकते हैं।
नुलिश कोलेसिंग (??) ऑपरेटर जावास्क्रिप्ट में हाल ही में जोड़ा गया है, जिसे ES2020 में पेश किया गया है। इसे उन मामलों को संभालने के लिए डिज़ाइन किया गया है जहां शून्य या अपरिभाषित का स्पष्ट रूप से एकमात्र शून्य मान माना जाता है।
result = operand1 ?? operand2;
द ?? जब बाएँ हाथ का ऑपरेंड शून्य या अपरिभाषित होता है तो ऑपरेटर दाएँ हाथ का ऑपरेंड लौटाता है। अन्यथा, यह बाएं हाथ का ऑपरेंड लौटाता है।
let userInput = ''; let defaultText = 'Hello, World!'; let message = userInput ?? defaultText; console.log(message); // Output: ''
इस उदाहरण में, userInput एक खाली स्ट्रिंग है, जो शून्य या अपरिभाषित नहीं है, इसलिए इसे वापस कर दिया जाता है।
let firstName = null; let lastName = 'Doe'; let name = firstName ?? lastName ?? 'Anonymous'; console.log(name); // Output: 'Doe'
यहां, पहला नाम शून्य है, इसलिए अंतिम नाम वापस कर दिया गया है क्योंकि यह न तो शून्य है और न ही अपरिभाषित है।
let value1 = 0; let value2 = ''; let resultOR = value1 || 'default'; let resultNullish = value1 ?? 'default'; console.log(resultOR); // Output: 'default' console.log(resultNullish); // Output: 0
इस उदाहरण में, 0 को || द्वारा मिथ्या माना जाता है ऑपरेटर लेकिन ?? के लिए एक वैध मान है ऑपरेटर।
let userInput = null; let fallbackText = 'Default Text'; let message = (userInput ?? fallbackText) || 'Fallback Message'; console.log(message); // Output: 'Default Text'
यहाँ, userInput शून्य है, इसलिए फ़ॉलबैकटेक्स्ट का उपयोग ?? द्वारा किया जाता है ऑपरेटर। फिर परिणाम की जाँच || द्वारा की जाती है ऑपरेटर, लेकिन चूंकि फ़ॉलबैकटेक्स्ट सत्य है, इसलिए इसे वापस कर दिया जाता है।
ऐसे परिदृश्य पर विचार करें जहां आपको नेस्टेड ऑब्जेक्ट गुणों के लिए डिफ़ॉल्ट मान सेट करने की आवश्यकता है।
let userSettings = { theme: { color: '', font: null } }; let defaultSettings = { theme: { color: 'blue', font: 'Arial' } }; let themeColor = userSettings.theme.color || defaultSettings.theme.color; let themeFont = userSettings.theme.font ?? defaultSettings.theme.font; console.log(themeColor); // Output: 'blue' console.log(themeFont); // Output: 'Arial'
इस उदाहरण में, userSettings.theme.color एक खाली स्ट्रिंग है, इसलिए defaultSettings.theme.color का उपयोग किया जाता है। userSettings.theme.font शून्य है, इसलिए defaultSettings.theme.font का उपयोग किया जाता है।
फ़ंक्शन पैरामीटर से निपटते समय, आप लापता तर्कों के लिए डिफ़ॉल्ट मान प्रदान करना चाह सकते हैं।
function greet(name, greeting) { name = name ?? 'Guest'; greeting = greeting || 'Hello'; console.log(`${greeting}, ${name}!`); } greet(); // Output: 'Hello, Guest!' greet('Alice'); // Output: 'Hello, Alice!' greet('Bob', 'Hi'); // Output: 'Hi, Bob!' greet(null, 'Hey'); // Output: 'Hey, Guest!'
इस उदाहरण में, नाम पैरामीटर ?? का उपयोग करता है यदि नाम शून्य या अपरिभाषित है तो ऑपरेटर को 'अतिथि' का डिफ़ॉल्ट मान सेट करना होगा। ग्रीटिंग पैरामीटर || का उपयोग करता है यदि अभिवादन शून्य या अपरिभाषित के अलावा कोई मिथ्या मान है, तो ऑपरेटर को 'हैलो' का डिफ़ॉल्ट मान सेट करना होगा।
वैकल्पिक चेनिंग (?.) को || के साथ जोड़ा जा सकता है और ?? गहराई से नेस्टेड ऑब्जेक्ट गुणों को सुरक्षित रूप से संभालने के लिए।
let user = { profile: { name: 'John Doe' } }; let userName = user?.profile?.name || 'Anonymous'; let userEmail = user?.contact?.email ?? 'No Email Provided'; console.log(userName); // Output: 'John Doe' console.log(userEmail); // Output: 'No Email Provided'
इस उदाहरण में, वैकल्पिक चेनिंग यह सुनिश्चित करती है कि यदि संपत्ति पथ का कोई भी हिस्सा मौजूद नहीं है, तो यह त्रुटियों को रोकते हुए अपरिभाषित लौटाता है। || और ?? ऑपरेटर तब उचित डिफ़ॉल्ट मान प्रदान करते हैं।
उपयोग करें || ब्रॉड डिफॉल्टिंग के लिए:
उपयोग ?? सटीक निरर्थक जांच के लिए:
दोनों का संयोजन:
लॉजिकल या (||) ऑपरेटर क्या करता है?
लॉजिकल OR (||) ऑपरेटर अपने ऑपरेंड के बीच पहला सत्य मान लौटाता है या यदि कोई भी सत्य नहीं है तो अंतिम ऑपरेंड लौटाता है।
मुझे नुलिश कोलेसिंग (??) ऑपरेटर का उपयोग कब करना चाहिए?
जब आपको शून्य या अपरिभाषित को विशेष रूप से 0 या खाली स्ट्रिंग्स जैसे अन्य गलत मानों को शून्य के रूप में व्यवहार किए बिना संभालने की आवश्यकता होती है, तो नलिश कोलेसिंग (??) ऑपरेटर का उपयोग करें।
क्या मैं दोनों ऑपरेटरों का एक साथ उपयोग कर सकता हूं?
हाँ, आप दोनों का उपयोग कर सकते हैं || और ?? विभिन्न प्रकार के मूल्यों को एक साथ संभालने और यह सुनिश्चित करने के लिए कि आपका कोड तर्क विभिन्न मामलों को प्रभावी ढंग से कवर करता है।
कैसे करता है || खाली स्ट्रिंग संभालें?
|| ऑपरेटर खाली स्ट्रिंग को गलत मानता है, इसलिए यदि पहली स्ट्रिंग खाली है तो यह अगला ऑपरेंड लौटा देगा।
क्या न्यूलिश कोलेसिंग (??) ऑपरेटर सभी ब्राउज़रों में समर्थित है?
?? ऑपरेटर आधुनिक ब्राउज़रों और परिवेशों में समर्थित है जो ES2020 का समर्थन करते हैं। पुराने परिवेशों के लिए, आपको बैबेल जैसे ट्रांसपिलर का उपयोग करने की आवश्यकता हो सकती है।
के बीच क्या अंतर हैं? और ?? ऑपरेटर?
मुख्य अंतर यह है कि || कई मानों को मिथ्या मानता है (जैसे, 0, '', असत्य), जबकि ?? केवल शून्य और अपरिभाषित को शून्य मान मानता है।
जावास्क्रिप्ट में लॉजिकल OR (||) और नुलिश कोलेसिंग (??) ऑपरेटरों के बीच अंतर को समझना मजबूत और बग-मुक्त कोड लिखने के लिए महत्वपूर्ण है। || ऑपरेटर व्यापक डिफॉल्टिंग परिदृश्यों के लिए बढ़िया है, जबकि ?? निरर्थक मानों को सटीकता से संभालने के लिए एकदम सही है। इन ऑपरेटरों का उचित उपयोग करके, आप यह सुनिश्चित कर सकते हैं कि आपका कोड विभिन्न डेटा स्थितियों को प्रभावी ढंग से संभालता है, एक सहज उपयोगकर्ता अनुभव प्रदान करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3