Mental Model
Recursion solves a problem by calling itself with smaller parts until it reaches a simple case it can answer directly.
Analogy: Imagine a set of nested boxes. To find a small item inside, you open the biggest box, then the next smaller box inside it, and so on until you find the smallest box with the item. The smallest box is the base case where you stop opening more boxes.
function recurse(n) {
if (n === 0) return;
recurse(n - 1);
}
Base case: n = 0 -> stop
Recursive case: n > 0 -> call recurse(n - 1)