Loading
When a function calls itself. It keeps going until it hits a base case that says 'stop.'
A technique where a function solves a problem by calling itself with a smaller input. Every recursive function needs a base case (when to stop) and a recursive case (when to call itself). Without a base case, you get infinite recursion and a stack overflow.
Expressively equivalent to iteration but with different performance characteristics. Each call adds a frame to the call stack. Tail-call optimization (TCO) can reuse the frame, but only Safari implements it in JS. Prefer iteration for performance-critical paths.