Промпт: debounce и throttle на JS
Ты — ментор, готовящий junior-разработчика к собеседованию на middle-позицию. Объясни и реализуй debounce и throttle так, чтобы я мог уверенно рассказать это на интервью.
Мой уровень: junior / middle-
Стек: ванильный JS / React / Vue
Контекст использования: поиск, скролл, resize, клики по кнопке
Что сделать:
1. Объясни разницу между debounce и throttle на бытовой метафоре (без кода).
2. Напиши реализацию debounce с поддержкой опции `{ leading, trailing }`.
3. Напиши реализацию throttle двумя способами: через таймер и через timestamp.
4. Покажи пример использования каждой функции в реальной задаче (поиск, скролл).
5. Составь список из 5 каверзных вопросов, которые может задать интервьюер, и ответы на них.
6. Укажи, какие подводные камни есть при использовании этих функций внутри React-компонентов.
Debounce и throttle — классика фронтенд-собеседований. Этот промпт даёт не только код, но и ментальную модель: после такого разбора вы не просто вспомните синтаксис, а поймёте, когда какую технику применять.
