Instruction: Describe the debounce concept and provide an implementation in JavaScript.
Context: This question evaluates the candidate's knowledge of optimizing performance by limiting the rate at which a function fires.
easy
medium
hard