# JavaScript Recursion

Recursion in JavaScript refers to the process of a function calling itself within its own definition. It is a powerful programming technique that allows you to solve complex problems by breaking them down into smaller, similar subproblems.

``````function functionName(parameters) {
// Base case(s)
if (/* base case condition */) {
// Return a value or perform an action
}

// Recursive case(s)
// Modify the parameters or state
// Call the function recursively
return functionName(modifiedParameters);
}
``````

In a recursive function, there are typically two components:

1. Base case: This is the condition that determines when the recursion should stop. When the base case is met, the function stops calling itself and returns a specific value.
2. Recursive case: This is the part of the function where it calls itself, typically with a modified input or state. The recursive call allows the function to solve a smaller version of the problem and move closer to the base case.

## JavaScript recursion example

Simple example code of a recursive function in JavaScript that calculates the factorial of a number:

``````function factorial(n) {
// Base case: factorial of 0 or 1 is 1
if (n === 0 || n === 1) {
return 1;
}

// Recursive case: multiply n by the factorial of n-1
return n * factorial(n - 1);
}

console.log(factorial(5)); ``````

Output:

In this example, the `factorial` function has a base case that returns 1 when `n` is 0 or 1. Otherwise, it calls itself a smaller value (`n - 1`) and multiplies the result by `n`.

Another example that calculates the sum of all positive integers up to a given number:

``````function sumUpTo(n) {
// Base case: when n is 1, return 1
if (n === 1) {
return 1;
}

// Recursive case: sum n with the sum of all positive integers up to n-1
return n + sumUpTo(n - 1);
}

console.log(sumUpTo(5));  // Output: 15 (1 + 2 + 3 + 4 + 5)
``````

Comment if you have any doubts or suggestions on this Js recursion topic.

Note: The All JS Examples codes are tested on the Firefox browser and the Chrome browser.

OS: Windows 10

Code: HTML 5 Version