DOM events propagate through the document tree in three phases: capture (down from the root), target (the clicked element), and bubble (back up). Event delegation uses bubbling to handle events from many children with a single parent listener.
Event propagation is the browser's mechanism for routing events through the DOM tree. When an interaction occurs, the browser builds a path from the document root to the target element. The event travels down this path during the capture phase, arrives at the target, then travels back up during the bubble phase.
At each node along the path, the browser checks for registered event listeners. Listeners are registered for either the capture or bubble phase. The third argument to addEventListener (or the capture option) determines which phase the listener responds to. The default is the bubble phase.
Event delegation is a pattern built on bubbling. Instead of attaching individual listeners to many child elements, you attach one listener to a common ancestor. When a child is clicked, the event bubbles up to the ancestor. The handler reads event.target to determine which child triggered the event and responds accordingly.
Interview framing: define Event Delegation in one sentence, then explain one concrete runtime behavior and one common pitfall with a short code example.