Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में Map और WeakMap में क्या अंतर है?


Map और WeakMap के बीच अंतर

Map और WeakMap का कार्यात्मक तंत्र समान है लेकिन उनमें थोड़े अंतर हैं।

1) एक WeakMap केवल ऑब्जेक्ट्स को कुंजी के रूप में स्वीकार करता है जबकि एक Map, ऑब्जेक्ट्स के अलावा, स्ट्रिंग्स, नंबर्स आदि जैसे प्रिमिटिव डेटा टाइप्स को भी स्वीकार करता है।

2) WeakMap ऑब्जेक्ट्स गार्बेज कलेक्शन को नहीं रोकते यदि उस ऑब्जेक्ट का कोई संदर्भ नहीं है जो कुंजी के रूप में कार्य कर रहा है। इसलिए WeakMap में कुंजियों को पुनः प्राप्त करने का कोई तरीका नहीं है, जबकि Map में Map.prototype.keys() जैसे मेथड्स हैं कुंजियों को प्राप्त करने के लिए।

3) WeakMap में कोई size प्रॉपर्टी मौजूद नहीं है।

Map

यह किसी भी डेटा टाइप जैसे स्ट्रिंग्स, नंबर्स, ऑब्जेक्ट्स आदि की परवाह किए बिना एक कुंजी को मान से जोड़ने के लिए उपयोग किया जाता है।

उदाहरण

<html> <body> <script> // Creates a new Map object    var map = new Map();     // Defines an object that will be used a key in the ma                    var objKey = {name: 'tutorialspoint'};        document.write("</br>"); // Adds a new element having a String as its key and a String as its value    map.set('first', 'a');                        document.write("</br>"); // Adds a new element having a Number as its key and an Array as its value    map.set(3, ['c']);          document.write("</br>"); // Adds a new element having an Object as its key and a Number as its value    map.set(objKey, 3); // Adds a new element having an Array as its key and a String as its value    map.set(['add', 'mapping'], 'd');           // Checks whether an element having a key of "2" exists in the map.    document.write(map.has(2));    document.write("</br>"); // Checks whether an element having a key of "first" exists in the map.    document.write(map.has('first'));    document.write("</br>"); // Retrieves the element having key of "first". Prints "a"    document.write(map.get('first'));    document.write("</br>"); // Retrieves the element having as a key the value of objKey.    document.write(map.get(objKey));    document.write("</br>"); // Retrieves the element having key of "empty". Prints "undefined"    document.write(map.get('empty'));    document.write("</br>"); // Retrieves the map size. Prints "4"    document.write(map.size);    document.write("</br>"); // deletes all the value      map.clear();    document.write(map.size); </script> </body> </html>

आउटपुट

false true a 3 undefined 4 0

WeakMap

नीचे दिए गए उदाहरण में हम पा सकते हैं कि WeakMap केवल ऑब्जेक्ट्स स्वीकार करता है लेकिन कोई प्रिमिटिव मान (स्ट्रिंग्स, नंबर्स) नहीं।

उदाहरण

<html> <body> <script> // Creates a new WeakMap object    var weakMap = new WeakMap(); // Defines an object that will be used a key in the map    var obj4 = {d: 4}; // Defines another object that will be used a key in the map    var obj5 = {e: 5}; // Adds a new element having an Object as its key and a String as its value    weakMap.set(obj4, 'fourth'); // Adds a new element having an Object as its key and a String as its value    weakMap.set(obj5, 'fifth'); // Adds a new element having a Function as its key and a Number as its value    weakMap.set(function(){}, 7); // Checks whether an element having as its key the value of objKey4 exists in the weak map.    document.write(weakMap.has(obj4));    document.write("</br>"); // Retrieve the value of element associated with the key having the value of objKey4. Prints "first"    document.write(weakMap.get(obj4));    document.write("</br>"); // Deletes the element having key of objKey4. Prints "true"    document.write(weakMap.delete(obj4));    document.write("</br>"); // Deletes all the elements of the weak map    weakMap.clear(); </script> </body> </html>

आउटपुट

true fourth true

  1. जावास्क्रिप्ट में फंक्शन्स और मेथड्स में क्या अंतर है? जावास्क्रिप्ट में फंक्शन्स और मेथड्स में क्या अंतर है?

    जावास्क्रिप्ट में फंक्शन्स और मेथड्स समान हैं, लेकिन एक मेथड एक फंक्शन है, जो एक ऑब्जेक्ट की प्रॉपर्टी है।निम्नलिखित जावास्क्रिप्ट में फंक्शन का एक उदाहरण है:function functionname(param1, param2){    // code }उदाहरणमेथड एक ऑब्जेक्ट से जुड़ा फंक्शन है। निम्नलिखित जावास्क्रिप्ट में मेथड का ए

  1. - जावास्क्रिप्ट और पायथन में सेमीकोलन का क्या अंतर है?

    पायथन में सेमीकोलन वैकल्पिक हैं। जावास्क्रिप्ट में भी यह वैकल्पिक है, लेकिन इसे जोड़ना एक अच्छी प्रैक्टिस है और कुछ स्टेटमेंट्स के मामले में यह आवश्यकता होती है। यदि इन स्टेटमेंट्स में सेमीकोलन नहीं डाला जाता, तो एक स्वचालित रूप से जुड़ जाता है, लेकिन यह कोड के उद्देश्य को बदल सकता है। इसे ऑटोमेटिक

  1. जावा और जावास्क्रिप्ट में क्या अंतर है? जावा और जावास्क्रिप्ट में क्या अंतर है?

    वेब डेवलपर जेरेमी कीथ ने 2009 में कहा था, जावा का जावास्क्रिप्ट से वही रिश्ता है जो हैम का हैम्स्टर से। इस उपमा की सटीकता पर बहस हो सकती है, लेकिन इसके पीछे की भावना ठोस है: जावा और जावास्क्रिप्ट, एक सामान्य भाषाई जड़ साझा करने के बावजूद, दो बिल्कुल अलग प्रोग्रामिंग भाषाएं हैं। वर्षों में ये थोड़ा ओ