Q1. What is debouncing?
Debouncing is a technique that delays running a function until a burst of repeated events has stopped for a set amount of time. For example, a search box that fires an API call 300ms after the user stops typing, not on every keystroke. It is used when you only care about the final state after activity settles, so you avoid redundant work while the user is still going.