En este artículo, hablaremos sobre la diferencia entre Map y WeakMap que presenta ES6. El objeto Javascript solo admite un objeto clave. Para admitir múltiples objetos clave, Then Map viene en este camino.
Mapa: Un Mapa es una lista desordenada de pares clave-valor donde la clave y el valor pueden ser de cualquier tipo como string, booleano, número, etc. Para una mejor comprensión, tomamos un ejemplo de Mapa y sus propiedades.
Ejemplo:
Javascript
<script> // Creating an empty map const myMap = new Map(); // Creating a set by inserting the key-value pair console.log(myMap); myMap.set("info", { name: "Sam", age: 36 }); // Access the elements of a Map console.log(myMap); console.log(myMap.get("info")); // Checking the element in a Map using has() method console.log("check whether info is there or not - " + myMap.has("info")); // Returning the number of elements using size property console.log("The no.of elements in a Map are " + myMap.size); // Removing the element from the map using // clear() and delete() methods // removing a particular element myMap.delete("address"); myMap.delete("info"); // true console.log(myMap); // Iteration through the map // using forEach method() const map2 = new Map(); map2.set("name", "Sam"); map2.set("age", "36"); // looping through Map map2.forEach(function (value, key) { console.log(key + "- " + value); }); </script>
Producción:
WeakMap: en un mapa débil, cada tecla solo puede ser un objeto y una función. Solía almacenar referencias de objetos débiles. Para una mejor comprensión, tomamos un ejemplo de WeakMap y sus propiedades:
Ejemplo:
Javascript
<script> // Creating a WeakMap const myweakMap = new WeakMap(); console.log(myweakMap); // WeakMap {} let obj = {}; // Adding object (element) to WeakMap myweakMap.set(obj, 'hello everyone'); console.log(myweakMap); // Access the element of a WeakMap using get() method console.log("The element of a WeakMap - " + myweakMap.get(obj)); // Checking the element in a map using has() method console.log("check if an element is present in WeakMap - " + myweakMap.has(obj)); // Delete the element of WeakMap using delete() method console.log("deleting the element of WeakMap - " + myweakMap.delete(obj)); console.log(myweakMap); // WeakMap {} // WeakMaps are not iterable. It will return // an error. For example, const weakMap1 = new WeakMap(); console.log(weakMap1); // WeakMap {} let obj1 = {}; // Adding object (element) to WeakMap weakMap.set(obj1, 'hello'); // Looping through WeakMap for (let i of weakMap1) { console.log(i); // TypeError } </script>
Producción:
Diferencia entre mapa y mapa débil:
Mapa |
Mapa débil |
Un mapa es una lista desordenada de pares clave-valor donde la clave y el valor pueden ser de cualquier tipo, como string, booleano, número, etc. | En un mapa débil, cada tecla solo puede ser un objeto y una función. Solía almacenar referencias de objetos débiles. |
Los mapas son iterables. | WeakMaps no son iterables. |
Los mapas guardarán todo incluso si no los usas. | WeakMaps contiene la referencia a la clave, no la clave en sí. |
El recolector de basura no elimina un puntero clave del «Mapa» y tampoco elimina la clave de la memoria. | El recolector de basura continúa y elimina el puntero clave de «WeakMap» y también elimina la clave de la memoria. WeakMap permite que el recolector de basura haga su tarea pero no el Mapa. |
Los mapas tienen algunas propiedades: .set, .get, .delete, .size, .has, .forEach, Iterators. | WeakMaps tiene algunas propiedades: .set, .get, .delete, .has. |
Puede crear un nuevo mapa usando un nuevo Map() . | Puede crear un nuevo WeakMap usando un nuevo WeakMap() . |
Publicación traducida automáticamente
Artículo escrito por deekshashukla03102001 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA