In JavaScript, a recursive function is a function that calls itself in order to solve a problem. Recursive functions break down a problem into smaller, more manageable sub-problems, and they solve each sub-problem by applying the same logic.
Here are the key components of a recursive function:
- Base Case: A condition that stops the recursion. It’s the simplest form of the problem that can be solved directly without further recursion.
- Recursive Case: The part of the function that calls itself with a smaller or simpler input. This is where the problem is broken down into sub-problems.
Here’s a generic template for a recursive function in JavaScript:
function recursiveFunction(parameter) {
// Base case
if (/* base case condition */) {
// Do something simple and return
return something;
} else {
// Recursive case
// Break down the problem, call the function with a smaller input
return recursiveFunction(simplerInput);
}
}
If you add console.log(n); inside the else block of your factorial function, it will print the value of n each time the function is called. However, keep in mind that this will print the values in reverse order due to the nature of recursion. Here’s the modified code:
function factorial(n) {
// Base case: factorial of 0 or 1 is 1
if (n === 0 || n === 1) {
return 1;
} else {
// Recursive case: n! = n * (n-1)!
console.log(n); // Print the value of n
return n * factorial(n - 1);
}
}
// Example usage:
const result = factorial(5);
console.log(result); // Output: 120
When you run this code, you’ll see the following output in the console:
5 4 3 2 1
Here are three more examples of recursive functions in JavaScript:
Example 1: Sum of Natural Numbers
function sumOfNaturalNumbers(n) {
// Base case: sum of first natural number is 1
if (n === 1) {
return 1;
} else {
// Recursive case: sum(n) = n + sum(n-1)
return n + sumOfNaturalNumbers(n - 1);
}
}
// Example usage:
const sumResult = sumOfNaturalNumbers(5);
console.log(sumResult); // Output: 15
This recursive function calculates the sum of the first n natural numbers.
Example 2: Fibonacci Sequence
function fibonacci(n) {
// Base case: fibonacci(0) = 0, fibonacci(1) = 1
if (n === 0) {
return 0;
} else if (n === 1) {
return 1;
} else {
// Recursive case: fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
// Example usage:
const fibResult = fibonacci(6);
console.log(fibResult); // Output: 8
This recursive function generates the nth number in the Fibonacci sequence.
Example 3: Power Function
function power(base, exponent) {
// Base case: any number to the power of 0 is 1
if (exponent === 0) {
return 1;
} else {
// Recursive case: power(base, exponent) = base * power(base, exponent - 1)
return base * power(base, exponent - 1);
}
}
// Example usage:
const powerResult = power(2, 3);
console.log(powerResult); // Output: 8







