What happens when we forget to add a base case to stop the recursive calls of a function? It will not be executed indefinitely; the browser will throw an error, which is known as a stack overflow error.
Each browser has its own limitations, and we can use the following code to do some testing:
let i = 0;
function recursiveFn() {
i++;
recursiveFn();
}
try {
recursiveFn();
} catch (ex) {
console.log('i = ' + i + ' error: ' + ex);
}
In Chrome version 65, the function is executed 15,662 times, and the browser throws the error RangeError: Maximum call stack size exceeded. In Firefox version 59, the function is executed 188,641 times, and the browser throws the error InternalError: too much recursion ...