Recursion (JavaScript)

Recursion is an important programming technique, in which a function calls itself.

An Example of Recursion

One example is the calculation of factorials. The factorial of a number n is calculated by multiplying 1 * 2 * 3 *... n. The following example shows how to calculate factorials iteratively, that is, by using a while loop in which the result is calculated.

function factorial(num)  
{  
    // If the number is less than 0, reject it.  
    if (num < 0) {  
        return -1;  
    }  
    // If the number is 0, its factorial is 1.  
    else if (num == 0) {  
        return 1;  
    }  
    var tmp = num;  
    while (num-- > 2) {  
        tmp *= num;  
    }  
    return tmp;  
}  

var result = factorial(8);  
document.write(result);  

// Output: 40320  

You can make the example recursive very simply. Instead of using a while loop to calculate the value, you can simply call factorial again, passing in the next lowest value. The recursion stops when the value is 1.

function factorial(num)  
{  
    // If the number is less than 0, reject it.  
    if (num < 0) {  
        return -1;  
    }  
    // If the number is 0, its factorial is 1.  
    else if (num == 0) {  
        return 1;  
    }  
    // Otherwise, call this recursive procedure again.  
    else {  
        return (num * factorial(num - 1));  
    }  
}  

var result = factorial(8);  
document.write(result);  

// Output: 40320