Table of Contents

    Recursion in JavaScript: Understanding Concepts and Examples

    Recursion in JavaScript: Understanding Concepts and Examples

    Introduction to the JavaScript recursive function

    A recursive function is a function that calls itself. We will take the classic factorial function for the demonstration.

    in Mathematics, the factorial of a non-negative integer is the product of all positive integer less than or equal to it. The factorial of the integer n is denoted by n!

    For example, the factorial of 5 is calculated as follows:

    5! = 5 x 4 x 3 x 2 x 1 = 120

    To develop a factorial function in JavaScript, you simply use a for loop as follows:

    function factorial(n) {
        var result = 1;
        for (let i = n; i > 1; i--) {
            result *= i;
        }
        return result;
    }

    This function is clean and straightforward.

    However, it is more readable if you develop the factorial function using the recursion technique. See the following recursive factorial function:

    function factorial(n) {
        if (n

    This is how it works. If n is equal to one or zero, the factorial of n is 1; otherwise, the factorial of n is the product of n and factorial of n - 1.

    The function seems to work fine initially. However, as mentioned in the Function type tutorial, the name of a function is a pointer pointing to the function object.

    The following code causes an error.

    var fac = factorial;
    factorial = null;
    console.log(fac(5)); // TypeError: factorial is not a function

    How the script works.

    • First, assign the variable named  fac to the factorial function name.
    • Second, set the factorial pointer to null.
    • Third, call the  fac function.

    Because inside the function, we referenced to the factorial name which was set to null at the time of calling the function, therefore we got a TypeError error.

    To resolve it, you can use a named function expression as follows:

    var factorial = function pf(n) {
        if (n

    In this case, the  pf function name is visible inside the function itself and it remains the same even if you assign the function to another variable. As a result, the recursive call will work correctly.

    Here is the test of the factorial function:

    var fac = factorial;
    factorial = null;
    console.log(fac(5)); // 120

    In this tutorial, we have shown you how to develop JavaScript recursive functions by implementing the factorial calculation function.

    Practice Quiz 16 MCQs Smart Learning

    Master This Topic with Smart Practice

    Reinforce what you just learned by solving high-quality MCQs. Improve accuracy, boost confidence, and prepare like a topper.

    Topic-wise MCQs
    Instant Results
    Improve Accuracy
    Exam Ready Practice
    Login & Start Quiz Create Free Account
    Save progress • Track results • Learn faster