JavaScript WeakMap
Subject: JavaScript
A WeakMap is a built-in object in JavaScript that stores key-value pairs, where keys must be objects and values can be any data type. Unlike Map, WeakMap holds keys weakly, so if a key object becomes unreachable elsewhere, it can be garbage collected automatically.
Why Use WeakMap?
- Useful for private data storage tied to objects.
 - Prevents memory leaks by allowing garbage collection of unused keys.
 - Keys are not enumerable — you cannot iterate over a WeakMap.
 - Ideal for caching or associating metadata with objects without modifying them.
 
Syntax
Example 1: Basic Usage
Important Points About WeakMap
- Only objects can be keys.
 - WeakMap methods include 
set(),get(),has(), anddelete(). - Keys are not iterable or enumerable.
 
Example 2: Using has() and delete()
Example 3: Private Data Encapsulation
In this example, age is private and cannot be accessed directly from outside the class.
WeakMap vs Map
- WeakMap keys must be objects; Map keys can be any type.
 - WeakMap keys are weakly referenced and not enumerable.
 - Map keys are strongly referenced and enumerable.
 
Key Takeaways
- Use WeakMap for storing key-value pairs with object keys only.
 - WeakMaps help avoid memory leaks through automatic garbage collection.
 - Suitable for private/internal data storage and caching.
 - WeakMap keys are not iterable.