"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट को अनलॉक करना: लॉजिकल या (||) बनाम नुलिश कोलेसिंग ऑपरेटर (??)

जावास्क्रिप्ट को अनलॉक करना: लॉजिकल या (||) बनाम नुलिश कोलेसिंग ऑपरेटर (??)

2024-07-30 को प्रकाशित
ब्राउज़ करें:778

Unlocking JavaScript: Logical OR (||) vs Nullish Coalescing Operator (??)

परिचय

जावास्क्रिप्ट, सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक होने के नाते, डेवलपर्स को विभिन्न तार्किक संचालन को संभालने के लिए ऑपरेटरों की एक श्रृंखला प्रदान करता है। इनमें से, लॉजिकल ओआर (||) और नुलिश कोलेसिंग (??) ऑपरेटर डिफ़ॉल्ट मानों को प्रबंधित करने और अशक्त मानों को संभालने के लिए मौलिक उपकरण हैं। यह आलेख इन दोनों ऑपरेटरों के बीच अंतर, उनके उपयोग के मामलों और उनके उपयोग को स्पष्ट करने के लिए व्यावहारिक, जटिल उदाहरणों पर प्रकाश डालेगा।

तार्किक या (||) ऑपरेटर को समझना

जावास्क्रिप्ट में लॉजिकल या (||) ऑपरेटर का व्यापक रूप से इसके ऑपरेंड के बीच पहला सत्य मान या यदि कोई भी सत्य नहीं है तो अंतिम मान लौटाने के लिए उपयोग किया जाता है। इसका उपयोग मुख्य रूप से डिफ़ॉल्ट मान सेट करने के लिए किया जाता है।

वाक्य - विन्यास

result = operand1 || operand2;

यह काम किस प्रकार करता है

द || ऑपरेटर बाएं से दाएं मूल्यांकन करता है, यदि यह सत्य है तो पहला ऑपरेंड लौटाता है; अन्यथा, यह दूसरे ऑपरेंड का मूल्यांकन करता है और लौटाता है।

उदाहरण 1: डिफ़ॉल्ट मान सेट करना

let userInput = '';
let defaultText = 'Hello, World!';

let message = userInput || defaultText;
console.log(message); // Output: 'Hello, World!'

इस उदाहरण में, userInput एक खाली स्ट्रिंग (झूठा) है, इसलिए defaultText वापस आ गया है।

उदाहरण 2: एकाधिक मानों को संभालना

let firstName = null;
let lastName = 'Doe';

let name = firstName || lastName || 'Anonymous';
console.log(name); // Output: 'Doe'

यहां, पहला नाम शून्य (झूठा) है, इसलिए अंतिम नाम सत्य होने के कारण वापस कर दिया गया है।

लॉजिकल OR (||) ऑपरेटर की सीमाएँ

की मुख्य सीमा || ऑपरेटर का अर्थ यह है कि यह कई मानों को मिथ्या मानता है, जैसे 0, NaN, '', असत्य, शून्य और अपरिभाषित। जब ये मान मान्य होने का इरादा रखते हैं तो इससे अप्रत्याशित परिणाम हो सकते हैं।

नुलिश कोलेसिंग (??) ऑपरेटर का परिचय

नुलिश कोलेसिंग (??) ऑपरेटर जावास्क्रिप्ट में हाल ही में जोड़ा गया है, जिसे ES2020 में पेश किया गया है। इसे उन मामलों को संभालने के लिए डिज़ाइन किया गया है जहां शून्य या अपरिभाषित का स्पष्ट रूप से एकमात्र शून्य मान माना जाता है।

वाक्य - विन्यास

result = operand1 ?? operand2;

यह काम किस प्रकार करता है

द ?? जब बाएँ हाथ का ऑपरेंड शून्य या अपरिभाषित होता है तो ऑपरेटर दाएँ हाथ का ऑपरेंड लौटाता है। अन्यथा, यह बाएं हाथ का ऑपरेंड लौटाता है।

उदाहरण 1: डिफ़ॉल्ट मान सेट करना

let userInput = '';
let defaultText = 'Hello, World!';

let message = userInput ?? defaultText;
console.log(message); // Output: ''

इस उदाहरण में, userInput एक खाली स्ट्रिंग है, जो शून्य या अपरिभाषित नहीं है, इसलिए इसे वापस कर दिया जाता है।

उदाहरण 2: शून्य मानों को संभालना

let firstName = null;
let lastName = 'Doe';

let name = firstName ?? lastName ?? 'Anonymous';
console.log(name); // Output: 'Doe'

यहां, पहला नाम शून्य है, इसलिए अंतिम नाम वापस कर दिया गया है क्योंकि यह न तो शून्य है और न ही अपरिभाषित है।

लॉजिकल OR (||) और नुलिश कोलेसिंग (??) ऑपरेटरों की तुलना करना

उदाहरण 1: ग़लत मानों की तुलना करना

let value1 = 0;
let value2 = '';

let resultOR = value1 || 'default';
let resultNullish = value1 ?? 'default';

console.log(resultOR); // Output: 'default'
console.log(resultNullish); // Output: 0

इस उदाहरण में, 0 को || द्वारा मिथ्या माना जाता है ऑपरेटर लेकिन ?? के लिए एक वैध मान है ऑपरेटर।

उदाहरण 2: दोनों ऑपरेटरों का एक साथ उपयोग करना

let userInput = null;
let fallbackText = 'Default Text';

let message = (userInput ?? fallbackText) || 'Fallback Message';
console.log(message); // Output: 'Default Text'

यहाँ, userInput शून्य है, इसलिए फ़ॉलबैकटेक्स्ट का उपयोग ?? द्वारा किया जाता है ऑपरेटर। फिर परिणाम की जाँच || द्वारा की जाती है ऑपरेटर, लेकिन चूंकि फ़ॉलबैकटेक्स्ट सत्य है, इसलिए इसे वापस कर दिया जाता है।

लॉजिकल OR (||) और नुलिश कोलेसिंग (??) ऑपरेटरों के जटिल उदाहरण

उदाहरण 3: वस्तुओं के साथ नेस्टेड संचालन

ऐसे परिदृश्य पर विचार करें जहां आपको नेस्टेड ऑब्जेक्ट गुणों के लिए डिफ़ॉल्ट मान सेट करने की आवश्यकता है।

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 का उपयोग किया जाता है।

उदाहरण 4: डिफ़ॉल्ट के साथ फ़ंक्शन पैरामीटर

फ़ंक्शन पैरामीटर से निपटते समय, आप लापता तर्कों के लिए डिफ़ॉल्ट मान प्रदान करना चाह सकते हैं।

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!'

इस उदाहरण में, नाम पैरामीटर ?? का उपयोग करता है यदि नाम शून्य या अपरिभाषित है तो ऑपरेटर को 'अतिथि' का डिफ़ॉल्ट मान सेट करना होगा। ग्रीटिंग पैरामीटर || का उपयोग करता है यदि अभिवादन शून्य या अपरिभाषित के अलावा कोई मिथ्या मान है, तो ऑपरेटर को 'हैलो' का डिफ़ॉल्ट मान सेट करना होगा।

उदाहरण 5: वैकल्पिक शृंखला के साथ संयोजन

वैकल्पिक चेनिंग (?.) को || के साथ जोड़ा जा सकता है और ?? गहराई से नेस्टेड ऑब्जेक्ट गुणों को सुरक्षित रूप से संभालने के लिए।

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'

इस उदाहरण में, वैकल्पिक चेनिंग यह सुनिश्चित करती है कि यदि संपत्ति पथ का कोई भी हिस्सा मौजूद नहीं है, तो यह त्रुटियों को रोकते हुए अपरिभाषित लौटाता है। || और ?? ऑपरेटर तब उचित डिफ़ॉल्ट मान प्रदान करते हैं।

सर्वोत्तम प्रथाएँ और उपयोग के मामले

  1. उपयोग करें || ब्रॉड डिफॉल्टिंग के लिए:

    • जब आपको झूठी स्थितियों की एक श्रृंखला के लिए डिफ़ॉल्ट मान प्रदान करने की आवश्यकता होती है (उदाहरण के लिए, खाली स्ट्रिंग, 0, NaN)।
  2. उपयोग ?? सटीक निरर्थक जांच के लिए:

    • जब आप विशेष रूप से अन्य गलत मानों को प्रभावित किए बिना शून्य या अपरिभाषित को संभालना चाहते हैं।
  3. दोनों का संयोजन:

    • || के संयोजन का उपयोग करें और ?? जटिल परिदृश्यों के लिए जहां आपको सत्य/झूठे मूल्यों और शून्य मूल्यों दोनों को स्पष्ट रूप से संभालने की आवश्यकता है।

पूछे जाने वाले प्रश्न

लॉजिकल या (||) ऑपरेटर क्या करता है?
लॉजिकल OR (||) ऑपरेटर अपने ऑपरेंड के बीच पहला सत्य मान लौटाता है या यदि कोई भी सत्य नहीं है तो अंतिम ऑपरेंड लौटाता है।

मुझे नुलिश कोलेसिंग (??) ऑपरेटर का उपयोग कब करना चाहिए?
जब आपको शून्य या अपरिभाषित को विशेष रूप से 0 या खाली स्ट्रिंग्स जैसे अन्य गलत मानों को शून्य के रूप में व्यवहार किए बिना संभालने की आवश्यकता होती है, तो नलिश कोलेसिंग (??) ऑपरेटर का उपयोग करें।

क्या मैं दोनों ऑपरेटरों का एक साथ उपयोग कर सकता हूं?
हाँ, आप दोनों का उपयोग कर सकते हैं || और ?? विभिन्न प्रकार के मूल्यों को एक साथ संभालने और यह सुनिश्चित करने के लिए कि आपका कोड तर्क विभिन्न मामलों को प्रभावी ढंग से कवर करता है।

कैसे करता है || खाली स्ट्रिंग संभालें?
|| ऑपरेटर खाली स्ट्रिंग को गलत मानता है, इसलिए यदि पहली स्ट्रिंग खाली है तो यह अगला ऑपरेंड लौटा देगा।

क्या न्यूलिश कोलेसिंग (??) ऑपरेटर सभी ब्राउज़रों में समर्थित है?
?? ऑपरेटर आधुनिक ब्राउज़रों और परिवेशों में समर्थित है जो ES2020 का समर्थन करते हैं। पुराने परिवेशों के लिए, आपको बैबेल जैसे ट्रांसपिलर का उपयोग करने की आवश्यकता हो सकती है।

के बीच क्या अंतर हैं? और ?? ऑपरेटर?
मुख्य अंतर यह है कि || कई मानों को मिथ्या मानता है (जैसे, 0, '', असत्य), जबकि ?? केवल शून्य और अपरिभाषित को शून्य मान मानता है।

निष्कर्ष

जावास्क्रिप्ट में लॉजिकल OR (||) और नुलिश कोलेसिंग (??) ऑपरेटरों के बीच अंतर को समझना मजबूत और बग-मुक्त कोड लिखने के लिए महत्वपूर्ण है। || ऑपरेटर व्यापक डिफॉल्टिंग परिदृश्यों के लिए बढ़िया है, जबकि ?? निरर्थक मानों को सटीकता से संभालने के लिए एकदम सही है। इन ऑपरेटरों का उचित उपयोग करके, आप यह सुनिश्चित कर सकते हैं कि आपका कोड विभिन्न डेटा स्थितियों को प्रभावी ढंग से संभालता है, एक सहज उपयोगकर्ता अनुभव प्रदान करता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/itsshaikhaj/unlocking-javascript-ological-or-vs-nullish-coalescing-operator--21hb?1 यदि कोई उल्लंघन है, तो कृपया [email protected] पर संपर्क करें। इसे हटा
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3