Hint
Mark-and-sweep — unreachable objects are collected; common leak sources
JavaScript uses automatic garbage collection — memory is freed when objects become unreachable from the "roots" (globals + active call stack).
Mark-and-Sweep algorithm:
let user = { name: 'Alice' }; // reachable via 'user'
user = null; // reference dropped → unreachable → GC'd
// Circular reference — NOT a problem for modern mark-and-sweep
let a = {}; let b = {};
a.ref = b; b.ref = a; // circular — but if a and b lose all external refs, both are GC'd
Common memory leak sources:
setInterval holding references to DOM elementsremoveEventListener)