आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

आधुनिक जावास्क्रिप्ट में कई नई विशेषताएं हैं जो कोड को सरल और संरचित तरीके से लिखना आसान बनाती हैं। ES6+ में उपलब्ध आसान आधुनिक सुविधाओं में से एक है सरणी और वस्तु का विनाश।

JavaScript फ्रेमवर्क जैसे React.js और Angular इस तकनीक के उपयोग को प्रोत्साहित करते हैं। इसलिए यह समझना आवश्यक है कि विनाशकारी क्या है और कोड लिखते समय इसका उपयोग कैसे करें।

जावास्क्रिप्ट में ऑब्जेक्ट और ऐरे डिस्ट्रक्टिंग क्या है?

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

जटिल फ़ंक्शन या अभिव्यक्ति से रिटर्निंग मानों को संसाधित करते समय भी यह सहायक होता है। यह अवधारणा इनमें से एक है रिएक्ट कोड लिखते समय आपको सर्वोत्तम प्रथाओं का पालन करना चाहिए.

सारणियों को कैसे नष्ट करें

सरणी विनाश की भावना प्राप्त करने के लिए यहां नमूना कोड दिया गया है:

कॉन्स्ट आगमन = [1, 2];
कॉन्स्ट [ए, बी] = आगमन;
सांत्वना देनालॉग (ए) // कंसोल पर 1 प्रिंट करता है
सांत्वना देनालॉग (बी) // कंसोल पर 2 प्रिंट करता है

यह कोड मूल्यों को असाइन करने के लिए विनाशकारी का उपयोग करता है आगमन—1 और 2—चरों के लिए और बी, क्रमश। विनाश के पीछे यह मौलिक अवधारणा है। आपके पास दाईं ओर एक सरणी या ऑब्जेक्ट है, और आप आइटम को अनपैक करते हैं और उन्हें बाईं ओर अलग-अलग चर के लिए असाइन करते हैं।

हुड के तहत, जावास्क्रिप्ट मूल्यों की प्रतिलिपि बनाता है आगमन और उन्हें बाईं ओर के वेरिएबल्स को इस तरह असाइन करता है:

कॉन्स्ट आगमन = [1,2];
कॉन्स्ट ए = आगमन [0];
कॉन्स्ट बी = आगमन [1];

जैसा कि आप देख सकते हैं, ऑब्जेक्ट या ब्रैकेट नोटेशन का उपयोग करने के विपरीत, विनाशकारी ऐसा करने का एक अधिक संक्षिप्त तरीका है। हालांकि, जटिल सरणियों या फ़ंक्शन के साथ काम करते समय यह सिंटैक्स उपयोगी होगा जो सरणियों या स्ट्रिंग्स को लौटाता है।

नीचे नमूना कोड की जाँच करें:

कॉन्स्ट [दिन, महीना, दिनांक, वर्ष, समय, समयक्षेत्र] = तारीख()।विभाजित करना(' ')

// कॉलिंग तिथि () प्रारूप में वर्तमान तिथि लौटाती है:
// सोमवार 20 फरवरी 2023 13:07:29 GMT+0000
सांत्वना देनालॉग (दिन) // प्रिंट सोम
सांत्वना देनालॉग (माह) // प्रिंट फरवरी
सांत्वना देनालॉग (तारीख) // प्रिंट 20

इस कोड नमूने में, हम कॉल करके वर्तमान दिनांक के साथ एक नई स्ट्रिंग बना रहे हैं तारीख(). अगला, हम उपयोग करते हैं विभाजित करना(), ए जावास्क्रिप्ट स्ट्रिंग विधि, विभाजक के रूप में स्थान का उपयोग करके स्ट्रिंग में आइटम को अलग करने के लिए। विभाजित करना(' ') एक सरणी देता है, और हम अलग-अलग चर के लिए मान निर्दिष्ट करने के लिए विनाशकारी का उपयोग करते हैं।

याद रखें कि यदि आपके सरणी में आपके अनपैकिंग से अधिक आइटम हैं, तो जावास्क्रिप्ट अतिरिक्त आइटमों को अनदेखा कर देगा।

कॉन्स्ट आगमन = [1, 2, 3, 4];
कॉन्स्ट [ए, बी] = आगमन;
सांत्वना देनालॉग (ए) // प्रिंट 1
सांत्वना देनालॉग (बी) // प्रिंट 2
// मान 3 और 4 किसी भी चर को नहीं दिए गए हैं; उनकी उपेक्षा की जाती है

इस स्थिति में, यदि आप शेष वस्तुओं को एक चर में संग्रहीत करना चाहते हैं, तो बाकी पैरामीटर का उपयोग इस प्रकार करें:

कॉन्स्ट आगमन = [1, 2, 3, 4];
कॉन्स्ट [ए, बी,... बाकी] = गिरफ्तार;
सांत्वना देनालॉग (बाकी) // प्रिंट [3,4]

कभी-कभी, आप किसी विशिष्ट वस्तु की परवाह नहीं कर सकते हैं। जावास्क्रिप्ट का विनाशकारी पैटर्न आपको खाली अल्पविराम का उपयोग करके कुछ तत्वों को छोड़ने की अनुमति भी देता है।

कॉन्स्ट आगमन = [1, 2, 3, 4];
कॉन्स्ट [ए, सी] = आगमन;
सांत्वना देनालॉग (सी) // प्रिंट 3

उपरोक्त कोड मूल्य को अनदेखा करने के लिए रिक्त स्थान का उपयोग करता है 2 सरणी में आगमन. मान देने के बजाय 2 चर के लिए सी, यह सरणी में अगले आइटम पर जाता है। यह चौथे मान को भी अनदेखा करता है क्योंकि यह इसे संग्रहीत करने के लिए एक चर निर्दिष्ट नहीं करता है।

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

कॉन्स्ट आगमन = [1];
कॉन्स्ट [ए, बी] = आगमन;
सांत्वना देनालॉग (ए) // प्रिंट 1
सांत्वना देनालॉग (बी) // प्रिंट अपरिभाषित

वेरिएबल्स को अपरिभाषित होने से रोकने के लिए, यदि आप सरणी लंबाई के बारे में सुनिश्चित नहीं हैं तो आप डिफ़ॉल्ट मान सेट कर सकते हैं (डिफ़ॉल्ट मान निर्दिष्ट करना आवश्यक नहीं है):

कॉन्स्ट आगमन = [1];
कॉन्स्ट [ए = '10', बी = 'उपलब्ध नहीं कराया'] = गिरफ्तार;
सांत्वना देनालॉग (ए) // प्रिंट 1
सांत्वना देनालॉग (बी) // प्रिंट "प्रदान नहीं किया गया"

यह विनाशकारी मूल्य निर्दिष्ट करता है 1 चर के लिए , इसके डिफ़ॉल्ट मान को ओवरराइट करना। चर बी इसे डिफ़ॉल्ट रखता है क्योंकि कोई मान प्रदान नहीं किया गया है।

वस्तुओं को कैसे नष्ट करें

विनाशकारी वस्तुएं सरणियों से बहुत अलग नहीं हैं। फर्क सिर्फ इतना है कि सरणियाँ पुनरावर्तनीय हैं और वस्तुएँ नहीं हैं, जिसके परिणामस्वरूप काम करने का तरीका थोड़ा अलग है।

वस्तुओं के साथ काम करते समय, असाइनमेंट ऑपरेटर के बाईं ओर के चर भी वस्तुओं की तरह आरंभीकृत होते हैं:

कॉन्स्ट व्यक्ति = {नाम: 'एल्विन', आयु: 10, ऊंचाई: 1};
कॉन्स्ट {नाम, आयु, ऊंचाई} = व्यक्ति;
सांत्वना देनालॉग (नाम) // प्रिंट 'एल्विन'
सांत्वना देनालॉग (ऊंचाई) // प्रिंट 1

कोड से, हम से संपत्ति के नाम का उपयोग कर रहे हैं व्यक्ति वस्तु। हालाँकि, आपको ऑब्जेक्ट में सटीक गुण नामों का उपयोग करने की आवश्यकता नहीं है। आप अलग-अलग चर नामों में मूल्यों को नष्ट और संग्रहीत कर सकते हैं:

कॉन्स्ट व्यक्ति = {नाम: 'एल्विन', आयु: 10, ऊंचाई: 1};
कॉन्स्ट {नाम: पहला नाम, आयु: साल, ऊंचाई: करेंटहाइट} = व्यक्ति;
सांत्वना देना.लॉग (पहला नाम) // प्रिंट 'एल्विन'
सांत्वना देना.लॉग (करंटहाइट) // प्रिंट 1

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

इसे संभालने के लिए, आप उसी तरह डिफ़ॉल्ट मान निर्दिष्ट कर सकते हैं, जिस संपत्ति का नाम आप किसी चर को निर्दिष्ट करना चाहते हैं, वह उपलब्ध नहीं है:

कॉन्स्ट व्यक्ति = {नाम: 'एल्विन', आयु: 10, ऊंचाई: 1};
कॉन्स्ट {नाम, आयु, ऊंचाई, स्थान ='दुनिया भर'} = व्यक्ति;
सांत्वना देनालॉग (नाम) // प्रिंट 'एल्विन'
सांत्वना देनालॉग (स्थान) // प्रिंट 'वर्ल्डवाइड'

बाईं ओर चर का क्रम किसी वस्तु के साथ कोई मायने नहीं रखता है क्योंकि वस्तुएँ कुंजी-मूल्य जोड़े में मूल्यों को संग्रहीत करती हैं। इस प्रकार, निम्न कोड समान परिणाम देगा:

कॉन्स्ट व्यक्ति = {नाम: 'एल्विन', आयु: 10, ऊंचाई: 1};
कॉन्स्ट {आयु, ऊंचाई, नाम} = व्यक्ति;
सांत्वना देनालॉग (नाम) // प्रिंट 'एल्विन'
सांत्वना देनालॉग (ऊंचाई) // प्रिंट 1

अंत में, सरणियों के समान, आप बाकी पैरामीटर का उपयोग एक चर में कई मानों को नष्ट करने के लिए भी कर सकते हैं:

कॉन्स्ट व्यक्ति = {नाम: 'एल्विन', आयु: 10, ऊंचाई: 1};
कॉन्स्ट {नाम,... बाकी} = व्यक्ति;
सांत्वना देनालॉग (नाम) // प्रिंट 'एल्विन'
सांत्वना देनालॉग (बाकी) // प्रिंट {उम्र: 10, ऊंचाई: 1}

बस ध्यान दें कि बाकी पैरामीटर हमेशा आखिरी आना चाहिए। अन्यथा, जावास्क्रिप्ट अपवाद फेंक देगा।

जावास्क्रिप्ट के विनाश के साथ अपने कोड की गुणवत्ता में सुधार करें

जावास्क्रिप्ट की आधुनिक विशेषताएं, जैसे विनाशकारी, आपको अत्यधिक पठनीय कोड लिखने में सक्षम बनाती हैं। विनाश का उपयोग करके, आप सरणियों और वस्तुओं से मूल्यों को जल्दी से अनपैक कर सकते हैं। विनाश अन्य स्थितियों में भी उपयोगी साबित हो सकता है, जैसे दो चर के मूल्यों की अदला-बदली। उम्मीद है, अब आप समझ गए होंगे कि जावास्क्रिप्ट में विनाशकारी का क्या अर्थ है, और कोड लिखते समय आप इसका उपयोग करने में सक्षम हो सकते हैं।