# Recursion One of the most powerful and elegant concept of functions, recursion is when a function invokes itself. Such a function is called a **_recursive function_**. As recursion happens, the underlying code of the recursive function gets executed again and again until a terminating condition, called the _base case_, gets fulfilled. As you dive into the world of algorithms, you'll come across recursion in many many instances. Visit the following resources to learn more: - [@article@Recursion and Stack](https://javascript.info/recursion) - [@article@JavaScript Function Recursions - CodeGuage](https://www.codeguage.com/courses/js/functions-recursions) - [@article@Recursion - MDN](https://developer.mozilla.org/en-US/docs/Glossary/Recursion)