Frontend-интервью почти всегда идёт слоями: JavaScript-ядро → React → вёрстка → сеть и оптимизация. Ниже — вопросы, которые встречаются чаще всего, и что за каждым стоит.
Функция + лексическое окружение места создания. Сильный ответ — практический: приватное состояние, дебаунс, фабрики обработчиков.
Синхронный код → все микрозадачи (промисы) → макрозадача (setTimeout). Потренируйтесь на 3–4 снippетах — это спрашивают в 8 из 10 интервью.
var — функциональная область и hoisting с undefined; let/const — блочная и TDZ. Классика-ловушка: var в цикле с setTimeout.
=== без приведения типов; правило — всегда строгое равенство. Пара примеров коварства ==: '' == 0, null == undefined.
От способа вызова: метод, обычный вызов, call/apply/bind, стрелочные берут this из окружения. Хотят таблицу случаев, а не «это сложно».
async/await — синтаксис над промисами; try/catch, Promise.all/allSettled для параллельности. Плюс: чем all отличается от allSettled на живом примере.
Props приходят сверху и неизменяемы для компонента, state — собственное изменяемое состояние. База; отвечать без пауз.
Ключи нужны реконсиляции; индекс ломает состояние при вставке/удалении элементов. Второй по частоте React-вопрос.
Запуск после рендера, deps — когда перезапускать, cleanup перед повтором и при размонтировании. Расскажите про бесконечный цикл из-за объекта в deps — покажет практику.
Дорогие вычисления и стабильность ссылок для memo-детей; по умолчанию — не нужен. Ответ «оборачиваю всё» — красный флаг.
Локальное — по умолчанию; глобальное (Redux/Zustand/Context) — для действительно общего. Критерии выбора важнее названия библиотеки.
Flex — одномерные ряды/колонки, Grid — двумерные раскладки. Пример: карточная сетка — grid, панель кнопок — flex.
inline > id > класс/атрибут > тег; предсказуемость через методологию (БЭМ/модули) вместо !important. !important как норма — красный флаг.
Мобайл-фёрст, media queries, относительные единицы, clamp(), картинки с srcset. Достаточно системы, не всех единиц наизусть.
DNS → TCP/TLS → запрос → HTML → парсинг → CSSOM/DOM → рендер; блокирующие ресурсы. Любимый вопрос на понимание всей цепочки; 2-минутная версия наготове.
Профилирование (Lighthouse/DevTools) → код-сплиттинг, lazy-загрузка, кэширование, сжатие картинок, меньше ререндеров. Начать с «сначала измеряю» — уже половина правильного ответа.
История: контекст → проблема → решение → результат (цифры, если есть). Подготовьте 2 истории заранее — они закрывают половину поведенческих вопросов.
Пришлите текст вакансии — бесплатно вернём вероятные вопросы по ней, риски и слабые темы. А в приложении SkillCue — тренировка ответов и подсказки прямо во время созвона.
Разобрать мою вакансию бесплатно