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

letuser={name:"Kiran"};user=null;
Enter fullscreen modeExit 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

functiontest(){letdata={value:10};}test();
Enter fullscreen modeExit fullscreen mode

After function ends:

👉 data becomes unreachable
👉 GC removes it


🚨 Memory Leak Example

letcache=[];functionaddData(){cache.push(newArray(1000000));}
Enter fullscreen modeExit 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(()=>{consttimer=setInterval(()=>{},1000);return ()=>clearInterval(timer);},[]);
Enter fullscreen modeExit 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)