Подготовка к собеседованию frontend с ИИ

Страница для фронтенд-разработчиков, которым нужна подготовка к техническому собеседованию frontend. Подходит и под собеседование frontend junior/middle, и под senior-позиции. ИИ-интервьюер спрашивает про HTML и доступность, CSS, работу браузера, JavaScript и TypeScript, фреймворки, сеть и архитектуру. Вы отвечаете голосом на до 50 вопросов и получаете отчёт с оценками за техническую точность, полноту и ясность.

Начать собеседование по FrontendПервое собеседование до 5 вопросов бесплатное. Карта не нужна.

О чём спрашивает ИИ на собеседовании frontend

Семантический HTML и доступность

Семантические теги, landmarks, заголовки, формы и label, когда нужны ARIA-атрибуты, а когда они вредят, навигация с клавиатуры и фокус.

CSS: каскад и вёрстка

Специфичность, каскад и @layer, box model, Flexbox против Grid, адаптивная вёрстка, container queries, :has() и нативный CSS nesting.

Браузер, рендеринг и Core Web Vitals

Critical rendering path, layout, paint и composite, reflow, LCP, INP и CLS, lazy loading, оптимизация изображений, шрифтов и бандла.

JavaScript и TypeScript

Замыкания, this, прототипы, event loop и микрозадачи, async/await, а в TypeScript — generics, union и narrowing, utility types, unknown против any.

Фреймворки: React, Vue, Angular

Компонентная модель, реактивность и ре-рендеры, жизненный цикл, hooks, Composition API, signals в Angular, SSR, гидратация и Server Components.

Сеть, кэширование и безопасность

HTTP-методы и статусы, HTTP/2 и HTTP/3, Cache-Control, ETag, CDN, CORS и preflight, XSS, CSRF, Content Security Policy, атрибуты cookie.

Состояние и архитектура

Локальное, глобальное и серверное состояние, TanStack Query, Redux Toolkit, Pinia, структура проекта, монорепозитории, микрофронтенды и их цена.

Тестирование

Пирамида тестов, unit-тесты на Vitest или Jest, Testing Library и тестирование поведения, а не реализации, e2e на Playwright, моки сети.

Вопросы на собеседовании frontend junior, middle и senior

Junior

  1. Чем семантические теги лучше div и почему это важно?

    Что должно быть в сильном ответе:Теги вроде header, nav, main, article, button и label передают смысл: скринридер объявляет их как landmarks и элементы управления, браузер даёт встроенную поддержку клавиатуры, а поисковики лучше понимают структуру. Сильный ответ упоминает, что div с onClick не получает фокус и не реагирует на Enter без дополнительного кода, поэтому для действий нужен настоящий button.

  2. Как считается специфичность CSS-селекторов?

    Что должно быть в сильном ответе:Специфичность сравнивается как тройка: ID, затем классы, атрибуты и псевдоклассы, затем теги и псевдоэлементы; инлайн-стили сильнее любого селектора, а !important перекрывает обычные правила. При равной специфичности побеждает правило, которое стоит позже. Хорошо добавить, что у :where() нулевая специфичность, а @layer позволяет управлять приоритетом без гонки специфичности.

  3. Чем Flexbox отличается от Grid и когда что выбрать?

    Что должно быть в сильном ответе:Flexbox — одномерная вёрстка: элементы выстраиваются в строку или колонку, и размеры зависят от контента. Grid — двумерная: вы задаёте строки и колонки, и элементы раскладываются по сетке. Типичный выбор: Flexbox для навбара, кнопок и рядов карточек, Grid для каркаса страницы и сложных сеток, причём их часто комбинируют.

  4. Чем отличаются let, const и var?

    Что должно быть в сильном ответе:У var функциональная область видимости и всплытие со значением undefined, а let и const блочные и до объявления находятся в temporal dead zone, так что обращение бросает ReferenceError. const запрещает переприсваивание переменной, но объект или массив в ней можно менять. В современном коде var практически не используют.

  5. Что такое делегирование событий?

    Что должно быть в сильном ответе:События всплывают от целевого элемента к родителям, поэтому один обработчик на контейнере может обрабатывать клики по всем дочерним элементам, проверяя event.target, например через closest(). Это экономит обработчики и работает для элементов, добавленных позже. Стоит упомянуть stopPropagation и то, что некоторые события, как focus, не всплывают (вместо них есть focusin).

Middle

  1. Объясните event loop: в каком порядке выполнятся setTimeout, Promise.then и синхронный код?

    Что должно быть в сильном ответе:Сначала выполняется весь синхронный код в call stack, затем браузер опустошает очередь микрозадач (колбэки промисов, queueMicrotask), и только потом берёт следующую макрозадачу вроде setTimeout. Между макрозадачами браузер может отрисовать кадр. Поэтому Promise.then всегда сработает раньше setTimeout(fn, 0), а бесконечная цепочка микрозадач блокирует рендеринг.

  2. Что такое Core Web Vitals и как улучшить INP?

    Что должно быть в сильном ответе:Core Web Vitals — это LCP (скорость появления главного контента, хорошо до 2,5 с), INP (задержка реакции на взаимодействие, хорошо до 200 мс, с 2024 года заменил FID) и CLS (стабильность вёрстки, хорошо до 0,1). INP улучшают, разбивая длинные задачи на main thread, откладывая неважную работу, уменьшая JS-бандл и число лишних ре-рендеров. Сильный ответ упоминает измерения на реальных пользователях, а не только в Lighthouse.

  3. Что такое CORS и зачем нужен preflight-запрос?

    Что должно быть в сильном ответе:Браузер по same-origin policy не даёт скрипту читать ответ с другого origin, если сервер явно не разрешил это заголовками Access-Control-Allow-*. Для «непростых» запросов, например с методом PUT, JSON-телом или кастомными заголовками, браузер сначала шлёт OPTIONS-preflight. Важно сказать, что CORS защищает пользователя в браузере, а не сервер: curl его игнорирует.

  4. Как защититься от XSS во фронтенд-приложении?

    Что должно быть в сильном ответе:Не вставлять недоверенные данные как HTML: использовать textContent и автоэкранирование фреймворков, а dangerouslySetInnerHTML или v-html — только с санитизацией, например через DOMPurify. Дополнительный уровень защиты — Content Security Policy, запрещающая инлайн-скрипты и чужие источники, и HttpOnly-cookie для сессии, чтобы скрипт не мог её украсть.

  5. Как вы решаете, где хранить состояние в приложении?

    Что должно быть в сильном ответе:Сначала держу состояние как можно ближе к месту использования и поднимаю его, только когда оно нужно нескольким компонентам. Серверные данные отделяю и отдаю библиотеке вроде TanStack Query, которая кэширует, дедуплицирует и перезапрашивает; состояние фильтров и пагинации часто лучше хранить в URL. Глобальный store (Redux Toolkit, Zustand, Pinia) — только для действительно общего клиентского состояния.

Senior

  1. Как бы вы диагностировали медленную страницу в продакшене?

    Что должно быть в сильном ответе:Начать с полевых данных — RUM или CrUX, — чтобы понять, какая метрика страдает, на каких страницах и устройствах. Дальше воспроизвести в DevTools Performance с троттлингом: искать длинные задачи, блокирующие ресурсы, тяжёлый LCP-элемент, layout shifts. Исправления приоритизировать по влиянию и закрепить бюджетами производительности в CI, чтобы регрессии не возвращались.

  2. CSR, SSR, SSG или стриминг: как выбрать стратегию рендеринга?

    Что должно быть в сильном ответе:SSG подходит для редко меняющегося контента и даёт самый быстрый TTFB с CDN; SSR — для персонализированных или часто обновляемых страниц, где важны SEO и быстрый первый показ; CSR — для приложений за логином. Стриминг SSR и Server Components позволяют отдавать части страницы раньше и меньше JS на клиент. Сильный ответ говорит о цене: нагрузка на сервер, стоимость гидратации и сложность кэширования.

  3. Когда микрофронтенды оправданы, а когда нет?

    Что должно быть в сильном ответе:Они оправданы, когда несколько независимых команд должны релизить свои части продукта отдельно и организационная выгода перевешивает техническую цену. Цена — дублирование зависимостей, больший бандл, сложность общего состояния, дизайн-системы и сквозного тестирования. Для одной-двух команд обычно хватает модульного монолита в монорепозитории с чёткими границами между модулями.

  4. Как вы построите стратегию тестирования фронтенда?

    Что должно быть в сильном ответе:Основа — быстрые unit- и интеграционные тесты компонентов через Testing Library, которые проверяют поведение глазами пользователя, с моками сети на уровне запросов, например MSW. Сверху — небольшое число e2e на Playwright для критичных сценариев: логин, оплата, ключевые формы. Добавить визуальные и a11y-проверки, следить за flaky-тестами и запускать всё в CI на каждый pull request.

  5. Как сравнить модели реактивности React, Vue и Angular?

    Что должно быть в сильном ответе:React перезапускает функцию компонента при изменении состояния и сравнивает дерево, поэтому мемоизация (вручную или через React Compiler) влияет на производительность. Vue отслеживает зависимости через прокси и обновляет только то, что читает изменённые данные. Angular перешёл от Zone.js к signals с точечными обновлениями и поддерживает zoneless-режим. Сильный ответ объясняет, как эта разница влияет на производительность и ментальную модель команды.

Как проходит мок-собеседование по Frontend

  1. Выберите Frontend (и другие технологии из своего стека), свой уровень и язык собеседования: украинский, английский или русский. Или загрузите резюме и описание вакансии.
  2. Отвечайте на каждый вопрос голосом, как на настоящем собеседовании.
  3. Получите оценку каждого ответа по точности, полноте и понятности и отчёт со слабыми местами.

Как отвечать на вопросы frontend вслух

  • →Начинайте с определения в одно предложение, а потом объясняйте механизм: «CORS — это правило браузера, которое…», а не сразу детали заголовков.
  • →Код описывайте словами по шагам: «на контейнер вешаю один обработчик, в нём через closest ищу кнопку». Интервьюер должен представить решение без редактора.
  • →Сравнивая инструменты — Flexbox и Grid, SSR и CSR, Redux и TanStack Query, — называйте, когда выбрали бы каждый, а не только разницу.
  • →Подкрепляйте ответ примером из проекта: какую метрику улучшили, какой баг с кэшем или CORS нашли и как.
  • →Если не знаете точно, скажите, как бы проверили: DevTools, вкладка Network, MDN, спецификация. Это звучит сильнее, чем угадывать.

Частые вопросы

Какой фреймворк покрывается: React, Vue или Angular?

Базовое frontend-собеседование спрашивает о концепциях фреймворков в целом. Чтобы получить более глубокие вопросы по конкретному, добавьте React, Vue или Angular как технологию вместе с Frontend, и ИИ учтёт ваш стек.

На каком языке можно пройти собеседование?

Язык выбираете перед стартом: русский, украинский или английский. На английском удобно тренироваться перед интервью в иностранную компанию.

Есть ли live coding?

Нет. Вопросы устные, вы отвечаете голосом, редактора кода нет. Часть вопросов просит объяснить, как бы вы что-то реализовали или дебажили, поэтому полезно тренироваться описывать код словами.

Можно тренироваться по моей вакансии?

Да. Загрузите описание вакансии или резюме, и ИИ составит вопросы под указанный там стек и уровень. Первое собеседование до 5 вопросов бесплатно, дальше от $1.75 за собеседование, без подписки.

Начать собеседование по FrontendПервое собеседование до 5 вопросов бесплатное. Карта не нужна.

Похожие мок-собеседования