WeakMap & WeakSet

Introduction to Weak Collections

WeakMap and WeakSet are special collections that hold "weak" references to their keys/elements. This means they don't prevent garbage collection of their contents, making them ideal for metadata storage without memory leaks.

Key Limitation: WeakMap keys and WeakSet values MUST be objects. Primitive values (strings, numbers, etc.) are not allowed.
1. WeakMap Basics
JavaScript Editor

WeakMap Methods:

  • set(key, value) - Add key-value pair
  • get(key) - Retrieve value
  • has(key) - Check existence
  • delete(key) - Remove entry

3. Garbage Collection Behavior
JavaScript Editor

The key difference from Map/Set is automatic cleanup when objects are no longer referenced.

5. Cache Implementation
JavaScript Editor

WeakMap is perfect for caching where cache should automatically clear.

7. Map vs WeakMap Comparison
JavaScript Editor
2. WeakSet Basics
JavaScript Editor

WeakSet Methods:

  • add(value) - Add object
  • has(value) - Check existence
  • delete(value) - Remove object

4. Practical Use Cases
JavaScript Editor

Perfect for private class data and DOM element metadata.

6. WeakSet Use Cases
JavaScript Editor

Great for tracking objects without preventing garbage collection.

When to Use Weak Collections
Use CaseRecommended CollectionReason
Private class dataWeakMapAutomatic cleanup when instance is garbage collected
DOM element metadataWeakMapNo memory leaks when elements removed from DOM
Object cachingWeakMapCache clears when objects no longer needed
Tracking processed objectsWeakSetAutomatic removal from tracking set
Circular reference preventionWeakMap/WeakSetHelps avoid memory leaks in complex object graphs
General data storageMap/SetWhen you need iteration, size, or primitive keys