Talanto
For recruiters
PlansCV Review
Login

Categories

  • All articles
  • Job Search
  • Resume & CV
  • Cover Letters & Applications
  • Interviews
  • Salary & Offers
  • Job Reviews & Roundups
  • Remote Work
  • Career
  • Career Growth
  • Market Trends
  • Onboarding
  • Tips

Related articles

  • Как отвечать на вопрос о зарплатных ожиданиях

    57d ago

  • Тестовое задание при найме: как оценить объём, выполнить и представить результат

    57d ago

  • Как ответить на вопрос «Почему вы хотите работать у нас?»

    57d ago

  • Как рассказать о сильных сторонах на собеседовании

    57d ago

  • Как говорить о слабых сторонах на собеседовании

    57d ago

Looking for a job?

IT roles with remote and relocation options.

Browse jobs
  1. Articles
  2. Interviews

Что спрашивают на собеседовании frontend-разработчика

Блоки: JS, CSS, React/фреймворк, живой код, поведение. Как готовиться по вакансии, не по всему интернету.

9 min readApril 14, 202669 views

On this page
  1. Как читать вакансию за 15 минут
  2. JavaScript: не определения, а сценарий
  3. CSS и вёрстка: кабинет, не лендинг с анимацией
  4. React (или ваш фреймворк): состояние и список
  5. Живой код: простой рабочий путь
  6. Что не говорить — и чем заменить
  7. Сеть, ошибки, доступность
  8. Поведение: оценка и конфликт с дизайном
  9. Две недели без распыления
  10. Частые вопросы
  11. Что сделать сейчас

Собеседование frontend в 2026-м редко проваливается из-за «не назвал все CSS-свойства». Чаще ломается другое: человек знает React по курсу, но не может объяснить, почему список тормозит, куда девается состояние формы и что будет, если пользователь нажмёт «отправить» дважды. Нанимающий проверяет не энциклопедию фреймворка, а вероятность, что вы не сломаете кабинет на первом релизе.

Ниже — блоки, которые реально ставят на скрининге и техэкране, полные ответы, которые можно сказать вслух, и подготовка по вакансии, а не «по всему интернету». Общий каркас — вопросы на собеседовании. Самопрезентацию соберите отдельно, не внутри рассказа про замыкания. Смотреть, какой слот вам ближе, удобно по frontend-вакансиям.

Коротко:

  • Готовьте глубоко стек из объявления: JS, CSS, один фреймворк. Не пять фреймворков «на всякий случай».
  • Почти всегда спросят состояние, список, форму и что происходит при ошибке сети.
  • Live coding проверяет ход мысли и простой рабочий путь, не идеальный архитектора.
  • Один свой экран разберите до боли: данные, ререндер, доступность, что не сделали.
  • Поведение и оценка объёма важны не меньше хуков: как вы режете скоуп и объясняете компромисс.

Как читать вакансию за 15 минут

Выпишите: фреймворк, TypeScript да/нет, кабинет или лендинги, дизайн-система, тесты, SSR/Next. Готовьте это. Если в вакансии React и формы, не тратьте неделю на Vue «вдруг спросят». Вторая проверка — объём: единственный фронт в стартапе и человек в команде с дизайн-системой — разные интервью.

Junior чаще ловят на HTML/CSS/JS и одном компоненте. Middle — на состоянии, производительности списка, доступности, работе с API. Senior — на границах: когда вынести в стейт-менеджер, как не убить бандл, как жить с легаси. Не готовьте senior-дизайн, если слот junior: вас услышат как человека не на ту роль.

Сверьтесь с тем, что уже лежит в frontend-резюме: если написали Next и GraphQL, будут копать. Если написали «адаптивная вёрстка» без факта — тоже спросят, и ответ развалится.

JavaScript: не определения, а сценарий

Спросят то, чем вы стреляете себе в ногу на практике: замыкание в цикле с обработчиком, this в колбэке, промис vs async, микротаски одной фразой, структурированное клонирование при postMessage — только если вакансия про это. Чаще: «что будет, если в обработчике await, а пользователь кликнул ещё раз».

Если обработчик async и нет защиты, второй клик запустит второй запрос, пока первый ещё в полёте. Я бы на кнопке сразу ставил disabled или флаг inFlight, а ответ первого запроса игнорировал бы, если уже ушли со экрана. Ошибку сети показываю рядом с формой, поля не сбрасываю: пользователь не должен набирать заново.

Про промисы на этом слоте мне важнее не «что такое event loop в учебнике», а порядок: сначала синхронно выставили состояние loading, потом fetch, потом setState по результату. Если setState после размонтирования — в новом React это уже не та боль, но я всё равно отменяю через AbortController, чтобы не долбить API зря.

Граница честно: тонкости очерёдности microtask/macrotask могу нарисовать на примере Promise.then и setTimeout, но на экране заказа я сначала закрываю двойной submit. Если копнёте в event loop — нарисую, не буду притворяться, что помню каждую спецификацию.

Почему это слышат как сильный ответ: есть пользовательский сценарий, есть отмена, есть граница знания. Нет лекции «замыкание это когда функция помнит лексическое окружение» без задачи.

CSS и вёрстка: кабинет, не лендинг с анимацией

В вакансиях на продукт спрашивают поток, флекс/грид, как не разъехать таблицу, как сделать фокус видимым, что будет на узком экране. Анимации и «сделайте как на Dribbble» — редкость, если вы не на маркетинг-сайт.

Типовой вопрос: «фильтры слева, таблица справа, на мобиле фильтры снизу. Как разложить?» Ответ — грид или флекс плюс что ломается при длинных данных, плюс overflow. Слабый ответ — «ну bootstrap». Сильный — где overflow, где sticky шапка таблицы, что с клавиатурой в фильтрах.

Десктоп: слева колонка фильтров фиксированной ширины, справа таблица с min-width и горизонтальным скроллом, если колонок много — не сжимаю цифры в кашу. Шапка таблицы sticky, чтобы при скролле строк не терять сортировку. Длинное название заказа — truncate с title, не ломаю высоту строки на три этажа без нужды. Мобил: фильтры уезжают в нижний лист или аккордеон, таблица становится карточками или тем же скроллом, не прячу обязательный столбец суммы.

Фокус: виден outline на фильтре и на строке, если строка кликабельна. Не вешаю click только на div. Если дизайнер принёс тень, которая перекрывает соседний контрол — это баг вёрстки, не «так в макете». Пустые данные: не прыгающий скелетон на 30 секунд, а явная пустая карточка и кнопка сброса фильтра.

React (или ваш фреймворк): состояние и список

Вопрос, который ставят постоянно: «список заказов, фильтр, детали справа. Где state?»

Фильтр и выбранный id — состояние экрана, не сервера. Список я бы держал как данные с сервера плюс статус loading/error, не как «массив, который сами мутируем в десяти местах». Детали — либо рядом, если уже пришли в списке, либо отдельный запрос по id, если в списке только шапка. Ключ в списке — стабильный id заказа, не индекс: иначе фильтр будет вспыхивать неправильными строками.

Лишний ререндер ловлю так: сначала смотрю, не поднял ли я слишком высоко состояние, из-за которого таблица перерисовывается на каждый символ в поиске. Поиск можно debounce, таблицу — мемоизировать строку, если профиль показал, что дорого. useMemo на всё подряд не ставлю: это шум, пока нет измерения.

Эффект с fetch кладу за зависимость от фильтра, не «в mount и забыли». Abort на смене фильтра, чтобы старый ответ не перетёр новый. Это тот баг, который я уже ловил в учебном кабинете: медленный запрос «все» прилетал после «оплаченные» и показывал не тот список.

Follow-up почти всегда: ключи, контролируемые инпуты, подъём состояния, контекст vs props. Готовьте одну фразу, зачем вам Redux/Zustand, если он в резюме: «много экранов делят корзину / черновик сложной формы». Если не делят — «не тащил бы».

CV review

How does your resume look to a recruiter?

Upload a PDF or DOCX. In 1–2 minutes you get a score across 7 sections and fixes in order of impact.

AKAnna KovalevaFrontend · Middle
46

The best result is buried at the end

Worked on developing new features and fixing bugs. Took part in moving the cart to Next.js, after which conversion grew from 2.1% to 2.8%.

Rewrite

Moved the cart to Next.js with the team, lifting conversion from 2.1% to 2.8%.

Review my resumePDF or DOCX · 1–2 minutes

Живой код: простой рабочий путь

Часто просят форму, список с фильтром, небольшой виджет. Не начинайте с архитектуры на 15 файлов. Сделайте работающее, проговорите ограничения, как на тесте. Ход мысли важнее идеальных абстракций — тот же навык, что в разборе live coding, только на фронте ещё видно, умеете ли вы не сломать ввод.

Я за 25 минут сделаю контролируемую форму: поля, ошибка под полем, submit disabled пока невалидно или уходит запрос. Список слева фильтрую по status на клиенте, если мок маленький; если скажете, что данных тысячи — скажу, что фильтр надо уносить на API, и оставлю TODO в комментарии, не буду притворяться, что клиентский filter это прод.

Стили — простой флекс, без борьбы с пикселем. Доступность: label связан с input, фокус виден, кнопку можно нажать с клавиатуры. Если не влезу в красивые пустые состояния — скажу вслух и оставлю текст «нет заказов».

Назовите, чего не успели. Названный компромисс — зрелость. Молчаливый костыль, который нашли за вас, — дыра.

Что не говорить — и чем заменить

Не «я знаю все фреймворки». Назовите один и границу. Не «у нас была микрофронтенд-архитектура», если вы верстали три экрана в монолите — скажите монолит и три экрана. Не «оптимизировал до 100 баллов Lighthouse», если не можете сказать, что мерили и на каком маршруте. Не спорьте с интервьюером, что CSS-in-JS «мёртв»: спросите, какой у них стек, и покажите, что умеете жить в нём.

Слабый ответ на «как ищете баг в проде»: «ну посмотрю в консоли». Сильный: какой пользователь, какой релиз, есть ли воспроизведение, сеть, флаг, откат. Даже на фронте инцидент — это гипотезы, не шаманство. Если не было прода — учебный: «фильтр показывал старые данные из-за гонки fetch, вот как поймал».

Про доступность не нужно читать WCAG наизусть. Нужно не строить кнопку из div без роли, не прятать ошибку только красным цветом, не ломать Tab. Если в команде нет дизайнера a11y, всё равно одна фраза про фокус отличает аккуратность. На CIS-слотах это спрашивают всё чаще в кабинетах для операторов: они работают с клавиатуры весь день.

Сеть, ошибки, доступность

Спросят: 401, 422, таймаут, пустой список vs ошибка сервера. Разные экраны. Не показывайте спиннер вечно. Не стирайте форму на 500. Для a11y: фокус, контраст, не прячьте ошибку только цветом. Если в вакансии нет слова accessibility, всё равно одна фраза про label и клавиатуру отличает вас от «верстальщика с курсов».

Поведение: оценка и конфликт с дизайном

Типовой behavioral: «дизайнер настаивает на анимации, из-за которой форма теряет фокус. Что сделаете?»

Не буду воевать вкусом в общем чате. Сначала воспроизведу: клавиатура, скринридер если есть, запись экрана. Потом коротко в задаче: «ломается фокус, это баг ввода, не вкус». Предложу компромисс — анимация на декоративном блоке, не на поле. Если дедлайн горит, выкатываю без анимации на форме и завожу тикет на потом. Эскалация к лиду — если спор блокирует релиз, не если нам не нравится цвет кнопки.

Готовьте ещё одну историю: резали скоуп, ошиблись в оценке, поймали баг на проде. Формат STAR, коротко. Сильные и слабые стороны не вшивайте сюда пачкой — это отдельные вопросы.

Две недели без распыления

  1. Дни 1–3. JS: промисы, двойной клик, AbortController. Один экран своего проекта — схема данных.
  2. Дни 4–6. React: список, ключи, форма, эффект с fetch. Проговорить вслух ответ про state.
  3. Дни 7–8. CSS кабинета: грид, overflow, фокус. Не анимации.
  4. Дни 9–11. Live: 40 минут на форму+список по таймеру, потом разбор, что отрезали.
  5. Дни 12–14. Mock-интервью: самопрезентация, один экран, вилка. Живой прогон — подготовка к интервью.

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

01Спросят ли алгоритмы?

Иногда короткий кусок: уникальные значения, группировка, разворот списка. Редко полный leetcode, если вакансия про кабинет. Смотрите объявление. Не топите две недели в деревьях, если в вакансии React и Figma.

02Нужен ли TypeScript на junior?

Если он в вакансии и в резюме — да, типы пропсов и ответа API. Если в вакансии JS — не изображайте архитектора дженериков. Честная граница сильнее.

03Что, если не знаю Next, а он в шапке?

Скажите, что такое SSR/SSG своими словами и где вы живёте на клиенте. Не учите весь фреймворк за ночь. Либо не откликайтесь на слот, где Next — ядро.

04Можно ли готовиться по чужим «200 вопросов frontend»?

Как список тем — да. Как заучивание ответов — нет. Интервьюер чуть сдвинет формулировку, и заученное сыпется. Готовьте свой экран.

05Стоит ли нести тестовое с прошлого отбора?

Да, если нет NDA. Пометьте ограничения. Это живой разбор, сильнее абстрактного pet-проекта.

06Нужно ли письмо к отклику, если интервью уже про стек?

Короткое — помогает попасть на скрининг. Шаблон: сопроводительное и короткая версия. На самом техэкране письмо уже не спасает.

Что сделать сейчас

Возьмите одну вакансию. Выпишите стек. Выберите один свой экран и напишите к нему ответ на полторы минуты: данные, баг, что отрезали. Прогоните форму с двойным submit вслух. Затем идите в каталог frontend-ролей уже с этим каркасом, а не с подборкой «все вопросы мира».

Next step

Try this article's advice on your own resume

The review highlights the lines where recruiters lose interest and suggests what to write instead.

  • A score out of 100 across 7 sections
  • Ready-made rewrites for weak lines
  • How well you fit a specific vacancy
Review my resumePDF or DOCX · 1–2 minutes
Sample reviewFrontend · Middle
46

Was 46
Now 87 / 100

  • Summary3 → 9
  • Experience4 → 9
  • Skills5 → 9

On this page

  1. Как читать вакансию за 15 минут
  2. JavaScript: не определения, а сценарий
  3. CSS и вёрстка: кабинет, не лендинг с анимацией
  4. React (или ваш фреймворк): состояние и список
  5. Живой код: простой рабочий путь
  6. Что не говорить — и чем заменить
  7. Сеть, ошибки, доступность
  8. Поведение: оценка и конфликт с дизайном
  9. Две недели без распыления
  10. Частые вопросы
  11. Что сделать сейчас

Categories

  • All articles
  • Job Search
  • Resume & CV
  • Cover Letters & Applications
  • Interviews
  • Salary & Offers
  • Job Reviews & Roundups
  • Remote Work
  • Career
  • Career Growth
  • Market Trends
  • Onboarding
  • Tips

Related articles

  • Как отвечать на вопрос о зарплатных ожиданиях

    57d ago

  • Тестовое задание при найме: как оценить объём, выполнить и представить результат

    57d ago

  • Как ответить на вопрос «Почему вы хотите работать у нас?»

    57d ago

  • Как рассказать о сильных сторонах на собеседовании

    57d ago

  • Как говорить о слабых сторонах на собеседовании

    57d ago

Looking for a job?

IT roles with remote and relocation options.

Browse jobs
AboutPublic OfferTerms of ServicePrivacy PolicySupport
AboutPublic OfferTerms of ServicePrivacy PolicySupport

By Region

  • Jobs in Europe
  • Jobs in USA
  • Jobs in Canada
  • Jobs in Russia

By Format

  • Remote Jobs
  • Relocation to USA
  • Hybrid Jobs
  • Office Jobs

By Experience Level

  • Junior Jobs
  • Middle Jobs
  • Senior Jobs