DEV Community

Cover image for JavaScript Garbage Collection
Kiran
Kiran

Posted on

JavaScript Garbage Collection

🧠 JavaScript Garbage Collection β€” Explained Simply ♻️

Memory management in JavaScript is automatic.

You create objects β†’ JavaScript allocates memory
Unused objects β†’ Garbage Collector removes them

πŸ‘‰ Developers don’t manually free memory like C/C++


⚑ What is Garbage Collection?

Garbage Collection (GC) is the process of automatically removing unused memory.

Goal:

βœ” Prevent memory leaks
βœ” Free unused objects
βœ” Optimize memory usage


🧩 Simple Example

let user = {
  name: "Kiran"
};

user = null;
Enter fullscreen mode Exit fullscreen mode

πŸ‘‰ Original object now has no reference
πŸ‘‰ Garbage Collector can remove it βœ…


🧠 How JavaScript Knows Memory is Unused

JavaScript mainly uses:

πŸ‘‰ Mark-and-Sweep Algorithm


πŸ” Step 1: Mark

GC starts from root references:

  • Global variables
  • Current function variables
  • Active closures

Anything reachable is marked as β€œin use”.


🧹 Step 2: Sweep

Unreachable objects are removed from memory.


⚑ Example

function test() {
  let data = { value: 10 };
}

test();
Enter fullscreen mode Exit fullscreen mode

After function ends:

πŸ‘‰ data becomes unreachable
πŸ‘‰ GC removes it


🚨 Memory Leak Example

let cache = [];

function addData() {
  cache.push(new Array(1000000));
}
Enter fullscreen mode Exit fullscreen mode

πŸ‘‰ References are never removed
πŸ‘‰ Memory keeps growing 🚨


🧠 Common Causes of Memory Leaks

❌ Unremoved event listeners
❌ Timers (setInterval)
❌ Large global variables
❌ Closures holding references
❌ Detached DOM nodes


βš›οΈ Real Use in React

Common leaks:

useEffect(() => {
  const timer = setInterval(() => {}, 1000);

  return () => clearInterval(timer);
}, []);
Enter fullscreen mode Exit fullscreen mode

πŸ‘‰ Cleanup prevents leaks βœ…


🚨 Interview Trap

❌ β€œJavaScript developers don’t care about memory”
βœ” GC is automatic, but memory leaks still happen


πŸ’‘ Senior-Level Insight

Garbage collection improves developer experience,
but:

πŸ‘‰ Too many allocations = GC pressure
πŸ‘‰ Frequent GC pauses can affect performance

Real optimization = fewer unnecessary objects.


🎯 Interview One-Liner

JavaScript garbage collection is an automatic memory management process that removes objects no longer reachable in memory using algorithms like mark-and-sweep.


JavaScript #Frontend #WebDevelopment #GarbageCollection #Performance #ReactJS #InterviewPrep #EngineeringMindset

Top comments (0)