Recursion in JavaScript

Last Updated: 22nd October 2025


A recursive function is a function that calls itself directly or indirectly to solve a problem.

Hinglish Tip 🗣: Recursion ko samjho “function apne aap ko call karta hai” — jaise ek mirror ke saamne mirror, baar-baar reflection dikhta hai 👀

It is used for breaking a big problem into smaller parts.


✏️ Basic Syntax

function recurse() {
  // some code
  recurse(); // function calling itself
}

To stop infinite calls, recursion must have a base condition otherwise it will keep calling itself forever and crash (stack overflow error 💥).


Example 1:

function countdown(n) {
  if (n === 0) {
    console.log("Done!");
    return;
  }
  console.log(n);
  countdown(n - 1); // recursive call
}

countdown(5);

Example 2:

function factorial(n) {
  if (n === 1) return 1; // base condition
  return n * factorial(n - 1);
}

console.log(factorial(5)); // 120

Example 3:

function fibonacci(n) {
  if (n <= 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

console.log(fibonacci(6)); // 8

💡 Quick Practice

  • Write a recursive function to print numbers from 1 to 10.
  • Write a recursive function to find the sum of first 5 natural numbers.
  • Create a recursive function to reverse a string.
  • Exercise Set 1
  • Exercise Set 2