paint-brush
सामान्य लोगों के लिए एक नुलिश कोलेसिंग (जेएस में) ट्यूटोरियलद्वारा@rahull
792 रीडिंग
792 रीडिंग

सामान्य लोगों के लिए एक नुलिश कोलेसिंग (जेएस में) ट्यूटोरियल

द्वारा Rahul7m2023/06/24
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

जब कुछ शून्य या अपरिभाषित होता है तो शून्य सहसंयोजक ऑपरेटर (??) एक डिफ़ॉल्ट मान प्रदान करने का एक छोटा, सरल तरीका है। गन्दा नेस्टेड टर्नरीज़ या तार्किक या कथनों के बजाय, आप डिफ़ॉल्ट में एकजुट होने के लिए डबल प्रश्न चिह्न ऑपरेटर का उपयोग कर सकते हैं। द?? यदि यह शून्य नहीं है (मतलब शून्य या परिष्कृत) तो ऑपरेटर बायीं ओर लौटेगा, अन्यथा यह दाहिनी ओर लौटेगा।
featured image - सामान्य लोगों के लिए एक नुलिश कोलेसिंग (जेएस में) ट्यूटोरियल
Rahul HackerNoon profile picture

सुनो! क्या आप कभी अपने जावास्क्रिप्ट कोड में शून्य या अपरिभाषित मानों को संभालने का प्रयास करते समय निराश हुए हैं? नुलिश कोलेसिंग एक नई सुविधा है जो इसे बहुत आसान बनाने में मदद करती है। इस पोस्ट में, हम शून्य सहसंयोजन की व्याख्या करेंगे।


इसका मतलब है सरल शब्द, मज़ेदार उदाहरण और कोई जटिल शब्दजाल नहीं। अंत तक, आप कुछ ही समय में साफ़, संक्षिप्त जेएस कोड लिख लेंगे।


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


भ्रमित करने वाला लग रहा है? चिंता न करें, हम आपको कुछ आसान उदाहरणों के साथ दिखाएंगे कि यह कैसे काम करता है। कमर कस लें, यह एक मज़ेदार सवारी होने वाली है!

नुलिश कोलेसिंग ऑपरेटर वास्तव में क्या है??

क्या आप कभी जावास्क्रिप्ट में शून्य मानों से निपटने में फंस गए हैं? मुझे पता है मेरे पास है। ठीक है, मेरे दोस्त, मैं तुम्हें शून्य कोलेस्सिंग ऑपरेटर (??) से परिचित कराता हूँ। यह छोटा लड़का आपके जीवन को बहुत आसान बना देगा।


तो वास्तव में नॉलिश कोलेसिंग ऑपरेटर क्या है? मूल रूप से, यह एक डिफ़ॉल्ट मान प्रदान करने का एक शॉर्टकट है जब कुछ शून्य या अपरिभाषित हो सकता है। लिखने के बजाय:


 let name = obj.name || 'default name';


अब आप बस लिख सकते हैं:


 let name = obj.name ?? 'default name';


?? यदि यह शून्य नहीं है (मतलब शून्य या अपरिभाषित है), तो ऑपरेटर बाईं ओर लौटाएगा, अन्यथा, यह दाईं ओर लौटाएगा। तो उपरोक्त उदाहरण में, यदि obj.name शून्य या अपरिभाषित नहीं है, तो नाम obj.name पर सेट किया जाएगा। लेकिन यदि obj.name शून्य या अपरिभाषित है, तो नाम 'डिफ़ॉल्ट नाम' होगा।


बहुत सुविधाजनक, है ना? कुछ अन्य उदाहरण:


 let age = ageInput ?? 25; // Sets age to ageInput if not nullish, otherwise 25 let email = user.email ?? 'no email provided'; let hobbies = obj.hobbies ?? []; // Sets hobbies to obj.hobbies if not nullish, otherwise an empty array

मुझे आशा है कि यह जावास्क्रिप्ट में आपके कुछ सशर्त तर्क को सरल बनाने में मदद करेगा।

एक वास्तविक दुनिया का उदाहरण जिससे हम सभी जुड़ सकते हैं

क्या आप कभी किसी चीज़ के लिए भुगतान करने गए हैं और आपको एहसास हुआ है कि आपके पास कुछ रुपये कम हैं? हम सभी वहाँ रहे है। शून्य संयोजन आपकी जेब में कुछ अतिरिक्त डॉलर ढूंढने जैसा है ताकि आप वास्तव में वह खरीद सकें जो आप खरीदना चाहते हैं।


मान लीजिए कि आप अपने सामान्य सुबह के पेय के लिए अपनी पसंदीदा कॉफ़ी शॉप पर जाते हैं। आप हाथ में $3 लेकर ऑर्डर के लिए तैयार होकर काउंटर पर जाएँ। लेकिन जब बरिस्ता आपको आपका कुल योग बताता है, तो कर के बाद यह $3.50 निकलता है।


अशक्त सहवास अचानक याद आने जैसा है कि आपकी जेब में एक और डॉलर है, इसलिए आप अभी भी अपनी कॉफी प्राप्त कर सकते हैं। काहे!


जावास्क्रिप्ट में, यदि कुछ शून्य या अपरिभाषित हो जाता है तो शून्य सहसंयोजन एक डिफ़ॉल्ट मान प्रदान करने का एक तरीका है। उदाहरण के लिए, मान लें कि आपके पास एक फ़ंक्शन है जो मान लौटा भी सकता है और नहीं भी:

 function getCoffeePrice() { // Returns $3.50 or undefined } let price = getCoffeePrice() ?? '$3.50';


यहां, यदि getCoffeePrice() अपरिभाषित लौटाता है, तो price डिफ़ॉल्ट रूप से '$3.50' होगी धन्यवाद ?? शून्य सह-संचालन संचालक। तो आपको किसी भी तरह से अपनी कॉफ़ी की कीमत की गारंटी है।


जब वेरिएबल शून्य या अपरिभाषित होते हैं, तो शून्य सहसंयोजन फ़ॉलबैक डिफ़ॉल्ट मान प्रदान करके आपके कोड को अधिक लचीला बनाता है। कॉफ़ी शॉप में अपनी जेब में अतिरिक्त डॉलर ढूंढने की तरह, यह सुनिश्चित करता है कि लेन-देन पूरा करने के लिए आपके पास वह सब कुछ है जो आपको चाहिए। बहुत सुविधाजनक, है ना?


अब आप यह जानकर निश्चिंत हो सकते हैं कि आप एक पेशेवर की तरह शून्य संयोजन को समझते हैं। कोडिंग का आनंद लें और अपनी कॉफी का आनंद लें!

जावास्क्रिप्ट में न्यूलिश कोलेसिंग का उपयोग करना

यदि यह शून्य नहीं है, तो शून्य सहसंयोजक ऑपरेटर (??) अपना बायां ऑपरेंड लौटाता है; अन्यथा, यह अपना दायां ऑपरेंड लौटाता है।


अस्पष्ट? आइए इसे तोड़ें। एक "शून्य" मान या तो शून्य या अपरिभाषित होता है। तो ?? ऑपरेटर जाँचता है कि क्या बायाँ मान शून्य है, और यदि ऐसा है, तो इसके बजाय सही मान लौटाता है।


उदाहरण के लिए:

 const name = bob ?? 'anonymous';


यदि बॉब परिभाषित है तो यह 'बॉब' को नाम का मान निर्दिष्ट करेगा। यदि बॉब अपरिभाषित या शून्य है, तो यह इसके बजाय 'अनाम' स्ट्रिंग निर्दिष्ट करेगा।

यह उपयोगी क्यों है?

के बिना ?? ऑपरेटर, आपको यह करना होगा:

 const name = bob !== null && bob !== undefined ? bob : 'anonymous';


?? ऑपरेटर हमें अनिवार्य रूप से वही कार्य करने के लिए एक छोटा, साफ़ सिंटैक्स देता है।


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

कुछ उदाहरण:

 const foo = null ?? 'default string'; // foo is 'default string' const bar = 0 ?? 42; // bar is 0 const qux = 0 || 42; // qux is 42 - || returns first truthy value function doSomething(x = 0) { x = x ?? 10; // If x is nullish, set default of 10 console.log(x); } doSomething(null); // Prints 10 doSomething(5); // Prints 5

मुझे आशा है कि इससे निरर्थक सह-संचालन ऑपरेटर को समझाने में मदद मिलेगी!

क्यों शून्य सहसंयोजन OR से बेहतर है (||)

OR (||) ऑपरेटर पहला सत्य मान लौटाएगा।

OR (||) ऑपरेटर अपने सामने आने वाले पहले सत्य मान को लौटाकर काम करता है। यदि दोनों मान ग़लत हैं, तो यह अंतिम मान लौटाएगा। उदाहरण के लिए:


 let name = null; let user = name || 'John'; // user is 'John'

यहां, name शून्य (झूठा) है, इसलिए user दूसरा मान, 'जॉन' मिलता है।

नुलिश कोलेसिंग ऑपरेटर (??) अधिक स्मार्ट है।

नुलिश कोलेसिंग ऑपरेटर (??) को ES2020 में पेश किया गया था और यह OR (||) से थोड़ा अधिक स्मार्ट है। यह पहला परिभाषित मान लौटाएगा (शून्य/अपरिभाषित नहीं)। इसलिए यदि पहला मान एक खाली स्ट्रिंग, 0, या गलत है, तो यह वह मान लौटा देगा। उदाहरण के लिए:


 let name = ''; let user = name ?? 'John'; // user is ''


यहां, name एक खाली स्ट्रिंग है, इसलिए user name (पहला परिभाषित मान) मिलता है।


नुलिश कोलेसिंग ऑपरेटर हमें साफ़-सुथरे तरीके से डिफ़ॉल्ट मान प्रदान करने की अनुमति देता है। हम शून्य/अपरिभाषित मानों के लिए डिफ़ॉल्ट मान सेट कर सकते हैं, बिना झूठे मानों जैसे 0, खाली स्ट्रिंग, गलत आदि के बारे में चिंता किए बिना।


उदाहरण के लिए, मान लें कि हमारे पास एक फ़ंक्शन है जो उपयोगकर्ता की आयु लौटाता है, लेकिन कभी-कभी आयु शून्य होती है:

 function getAge() { return age; // could be null } let userAge = getAge() || 30; // Uses OR, not ideal


यहां, यदि age 0, '', या गलत है, तो userAge गलत तरीके से 30 होगी।


नुलिश कोलेसिंग ऑपरेटर का उपयोग इसे ठीक करता है:


 let userAge = getAge() ?? 30; // Uses ??


अब, यदि age शून्य या अपरिभाषित है तो userAge केवल 30 होगी। 0 जैसे किसी अन्य मिथ्या मान का उपयोग किया जाएगा।

तो संक्षेप में, जब आप शून्य/अपरिभाषित के लिए एक डिफ़ॉल्ट मान प्रदान करना चाहते हैं, लेकिन 0, खाली स्ट्रिंग्स, या गलत जैसे झूठे मानों के लिए नहीं, तो OR (||) के बजाय नलिश कोलेसिंग ऑपरेटर (??) का उपयोग करें।


आपका कोड साफ़-सुथरा होगा और बग की संभावना कम होगी!

अशक्त सहसंयोजन के बारे में सामान्य प्रश्न

तो आपने जावास्क्रिप्ट में इस फैंसी नए न्यूलिश कोलेसिंग ऑपरेटर (??) के बारे में सुना है और आपके कुछ प्रश्न हैं। कोई चिंता नहीं, मैंने आपको कवर कर लिया है!

नुलिश कोलेसिंग किस डेटा प्रकार के साथ काम करता है?

  • शून्य सहसंयोजन जावास्क्रिप्ट में किसी भी डेटा प्रकार के साथ काम करता है, जिसमें शामिल हैं:
  • संख्याएँ: 0 ?? 1 // रिटर्न 1
  • स्ट्रिंग्स: '' ?? 'हैलो' // रिटर्न 'हैलो'
  • बूलियन्स: झूठा ?? सत्य // सत्य लौटाता है
  • वस्तुएँ: {} ?? {नाम: 'जॉन'} // रिटर्न्स {नाम: 'जॉन'}
  • सारणियाँ: [] ?? [1, 2, 3] // रिटर्न्स [1, 2, 3]
  • और अधिक!

में क्या अंतर है || (या और ?? (नलिश कोलेसिंग) संचालक?

|| (OR) यदि बायां ऑपरेंड गलत है (झूठा, 0, खाली स्ट्रिंग, शून्य, अपरिभाषित, NaN) तो ऑपरेटर दायां ऑपरेंड लौटा देगा।


?? (नलिश कोलेसिंग) ऑपरेटर केवल दायां ऑपरेंड लौटाएगा यदि बायां ऑपरेंड शून्य या अपरिभाषित है।


तो मुख्य अंतर यह है ?? 0 और खाली स्ट्रिंग को वैध मान मानता है, जबकि || नहीं करता।

मुझे कब उपयोग करना चाहिए ?? खत्म ||?

उपयोग करें ?? जब आप शून्य या अपरिभाषित के लिए एक डिफ़ॉल्ट मान प्रदान करना चाहते हैं, लेकिन 0 और खाली स्ट्रिंग को वैध मान मानते हैं।


प्रयोग करें || जब आप किसी "गलत" मान के लिए फ़ॉलबैक प्रदान करना चाहते हैं।


आशा है कि यह नुलिश कोलेसिंग ऑपरेटर के बारे में आपके कुछ ज्वलंत प्रश्नों को स्पष्ट करने में मदद करेगा! अगर आपके पास कोई अन्य सवाल है तो मुझे बताएं।

निष्कर्ष

अब आप नलिश कोलेसिंग के बारे में सब कुछ जानते हैं और यह जावास्क्रिप्ट में कैसे काम करता है। बहुत आसान, है ना? यह छोटा ऑपरेटर संक्षिप्त तरीके से डिफ़ॉल्ट मान प्रदान करके आपका समय बचा सकता है और आपके कोड को साफ़-सुथरा बना सकता है।


तो आगे बढ़ें और अपने दिल की संतुष्टि के लिए अशक्त मूल्यों को एकजुट करें! आप आधुनिक जावास्क्रिप्ट सुविधाओं में महारत हासिल करने की राह पर हैं।


हैप्पी कोडिंग!