Подготовка по специальности
Собеседование frontend-разработчика:
вопросы и ответы.
Frontend-интервью почти всегда проверяет три слоя: язык (JavaScript и TypeScript), фреймворк и понимание того, как работает браузер. Ниже — типичные вопросы каждого слоя и подход к ответам без заучивания.
Потренировать ответы вслухНе пытайтесь выучить все ответы: интервьюеры проверяют понимание, а не память. Разберите темы ниже, прорешайте типичные вопросы вслух и свяжите каждый ответ с примером из собственного опыта.
01 · Процесс
Как обычно проходит интервью
Обычный процесс: скрининг с рекрутером, техническое интервью с вопросами по JavaScript и фреймворку, секция live coding или тестовое задание, затем разговор про опыт и командную работу. В крупных компаниях добавляется секция про архитектуру фронтенда и системный дизайн интерфейсов.
02 · Темы
Что нужно знать перед интервью
JavaScript и TypeScript
- замыкания, области видимости, hoisting
- event loop: микрозадачи и макрозадачи
- this, стрелочные функции, bind/call/apply
- промисы, async/await, обработка ошибок
- типы в TypeScript: generics, union, utility types
Фреймворк (чаще всего React)
- жизненный цикл компонента и хуки
- причины лишних перерендеров и мемоизация
- управление состоянием: контекст, Redux, серверное состояние
- ключи в списках, реконсиляция
Браузер и сеть
- критический путь рендеринга, repaint и reflow
- CORS, кеширование, HTTP-заголовки
- Core Web Vitals и оптимизация загрузки
- безопасность: XSS, CSRF, Content Security Policy
03 · Вопросы
Вопросы с разбором ответов
Пометка показывает редакционный приоритет для подготовки, а не статистику интервью: базовая тема важная тема дополнительно
Дайте определение в одну фразу — функция сохраняет доступ к переменным внешней области видимости — и сразу переходите к практике: обработчики событий, дебаунс, приватное состояние в модуле. Пример из своего кода убедительнее теории.
Микрозадачи (промисы) выполняются раньше макрозадач (setTimeout) в пределах одного цикла. Проговорите порядок: синхронный код → очередь микрозадач целиком → одна макрозадача → снова микрозадачи.
03. Почему компонент перерендеривается и как это чинить?
базовая темаНазовите причины: изменение состояния или пропсов, перерендер родителя, новая ссылка на объект или функцию в пропсах. Из инструментов — React DevTools Profiler, memo, useMemo, useCallback. Подчеркните: сначала измерить, потом оптимизировать.
04. Чем controlled-компоненты отличаются от uncontrolled?
важная темаControlled хранит значение в состоянии React и обновляется через onChange; uncontrolled — в DOM, значение читают через ref. Скажите, когда каждый вариант уместен: сложные формы с валидацией против простых одиночных полей.
05. Как бы вы ускорили загрузку медленной страницы?
базовая темаИдите от измерения: Lighthouse, вкладка Performance. Затем меры по убыванию эффекта: code splitting и ленивая загрузка, оптимизация изображений, кеширование, критический CSS, уменьшение бандла. Покажите, что понимаете разницу между LCP, INP и CLS.
Браузер ограничивает кросс-доменные запросы; сервер разрешает их заголовком Access-Control-Allow-Origin. Упомяните preflight-запросы OPTIONS для «непростых» методов и типичную ошибку: чинить CORS на фронтенде, когда настройка нужна на сервере.
07. Расскажите про специфичность селекторов и каскад в CSS.
важная темаПорядок: inline-стили, id, классы и атрибуты, теги. Добавьте современный контекст: CSS-переменные, :where и :is, слои @layer. Практический пример конфликта стилей из опыта покажет, что вы этим реально пользовались.
08. TypeScript: зачем нужны generics? Приведите пример.
важная темаGenerics сохраняют связь типов между входом и выходом функции. Простой пример: типизированная обёртка над fetch или функция first<T>(arr: T[]). Упомяните ограничения через extends.
09. Как организовать состояние в большом приложении?
важная темаРазделите состояние на серверное (React Query, SWR), глобальное клиентское (Redux, Zustand) и локальное (useState). Главный тезис: не тащить всё в глобальный стор, а выбирать инструмент под тип данных.
10. Поведенческий: расскажите о самом сложном баге, который вы чинили.
базовая темаСтруктура STAR: контекст, ваша роль, шаги отладки, результат. Для фронтенда хорошо звучат баги про гонки запросов, кеширование или различия браузеров — они показывают глубину, а не случайность находки.
04 · Практика
Live coding: чего ожидать
Типичные задачи: сверстать компонент по макету, написать дебаунс или промисифицированную функцию, отфильтровать и преобразовать массив данных, сделать запрос к API и отрисовать список с состояниями загрузки и ошибки.
Говорите вслух: интервьюеру важен ход мысли, а не идеальный код с первой попытки. Начните с уточнения требований, проговорите план, затем пишите. Если застряли — опишите, что проверили и какие гипотезы остались: это тоже оценивается.
Общая подготовка — резюме, техника, звук и демонстрация экрана — разобрана в чек-листе подготовки к онлайн-собеседованию. Как осознанно использовать ИИ-подсказки во время звонка — в гайде «Как использовать ИИ на собеседовании».
05 · FAQ
Частые вопросы
Нужно ли учить алгоритмы для frontend-собеседования?
Зависит от компании. В большинстве продуктовых компаний хватает уверенной работы с массивами, объектами, строками и понимания сложности алгоритмов. Классические задачи уровня LeetCode чаще спрашивают в крупных международных компаниях.
Что важнее: знание React или чистый JavaScript?
База JavaScript важнее: фреймворки меняются, а замыкания, асинхронность и работа браузера остаются. Сильный кандидат объясняет, что фреймворк делает под капотом, а не только повторяет его API.
Как готовиться, если опыта мало?
Соберите два–три пет-проекта с реальной функциональностью: формы, запросы к API, роутинг, деплой. На интервью разбирайте их как рабочие кейсы: какие решения приняли, что бы переделали. Это заменяет недостающий коммерческий опыт лучше, чем заученная теория.
Тренировка перед интервью
Репетируйте ответы вслух с Mira
Mira слышит вопрос и показывает подсказку для ответа прямо во время звонка. 30 минут бесплатно каждый месяц, банковская карта не нужна.
Mira