Building Your Learning Module...
Getting things ready for you!
Find videos you like?
Save to resource drawer for future reference!
WeakMap and WeakSet are special collections that hold "weak" references to objects. Unlike Map and Set, they don't prevent their keys (WeakMap) or values (WeakSet) from being garbage collected. This makes them perfect for storing metadata or tracking objects without causing memory leaks.
Key-value pairs where keys are objects with weak references
Collection of objects with weak references (no duplicates)
| Feature | Map | WeakMap |
|---|---|---|
| Key Types | Any type | Objects only |
| Garbage Collection | Prevents GC | Allows GC |
| Iterable | Yes | No |
| Size Property | Yes | No |
Store metadata about objects without memory leaks
Memoization that doesn't cause memory leaks
Store data about DOM elements without memory leaks
WeakSet is similar to Set but only holds objects and uses weak references. It's perfect for tracking objects without preventing them from being garbage collected.
add(obj) - Add objecthas(obj) - Check if existsdelete(obj) - Remove objectsize propertyclear() methodTrack which objects have been processed
Detect circular references in object traversal
Monitor which objects are currently active
Cannot use primitives (strings, numbers, booleans). Objects only!
Cannot loop through entries, get size, or list all keys/values
Cannot clear all entries at once (WeakSet only)
Cannot predict exactly when garbage collection happens
Don't prevent garbage collection of objects
Perfect for metadata without memory leaks
Keys/values must be objects, not primitives
Not iterable, no size - by design for memory safety