# JavaScript Functions Recursive Function

## Example

A recursive function is simply a function, that would call itself.

``````function factorial (n) {
if (n <= 1) {
return 1;
}

return n * factorial(n - 1);
}
``````

The above function shows a basic example of how to perform a recursive function to return a factorial.

Another example, would be to retrieve the sum of even numbers in an array.

``````function countEvenNumbers (arr) {
// Sentinel value.  Recursion stops on empty array.
if (arr.length < 1) {
return 0;
}
// The shift() method removes the first element from an array
// and returns that element. This method changes the length of the array.
var value = arr.shift();

// `value % 2 === 0` tests if the number is even or odd
// If it's even we add one to the result of counting the remainder of
// the array.  If it's odd, we add zero to it.
return ((value % 2 === 0) ? 1 : 0) + countEvens(arr);
}
``````

It is important that such functions make some sort of sentinel value check to avoid infinite loops. In the first example above, when `n` is less than or equal to 1, the recursion stops, allowing the result of each call to be returned back up the call stack. PDF - Download JavaScript for free