Вернуться в каталог собеседований

#9 С Java на JavaScript в 35. Собеседование на Frontend Junior разработчика

Выпуск «Отсобеседования» с учебным интервью кандидата Дмитрия на Junior Frontend. Собеседующие проверяют глубину понимания JavaScript, браузерных API, HTML-семантики, доступности и CSS, после чего дают развёрнутую обратную связь.

Отсобеседование
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 40,6 тыс.
  • Лайки на YouTube: 1,1 тыс.
Открыть на YouTube

Таймлайн

Коротко о видео

Это учебное mock-интервью Дмитрия на позицию Junior Frontend-разработчика: он рассказывает о переходе от Java и бэкенда к JavaScript, работе над интернет-магазином и собственной реализации аутентификации с access/refresh tokens. Основная часть — подробный опрос по JavaScript, Web API, HTML и CSS: функции, контекст и замыкания, модули, event loop, Shadow DOM, семантика, таблицы, изображения, iframe и изоляция стилей. В финале собеседующие высказывают мнение, что его знаний достаточно для junior-позиции, отмечая отдельные пробелы в вёрстке и Web API; это оценка участников шоу, а не результат реального найма.

Затронутые темы

Что взять на заметку

  • Подготовить чёткое различение function declaration и function expression: expression создаёт значение-функцию и удобно передаётся inline как callback, а declaration создаёт именованное объявление в области видимости.
  • Разобрать `this`: стрелочная функция берёт лексический контекст, а контекст обычной функции зависит от вызова; `call`, `apply` и `bind` меняют способ его задания, причём повторный `bind` не перепривязывает уже связанную функцию.
  • Уметь объяснить ES modules на примере повторного импорта: модуль исполняется один раз и переиспользуется; отдельно стоит перепроверить нюансы live bindings и различия примитивов и объектов.
  • Для вопросов об event loop связать call stack, очередь задач, microtasks и таймеры: `setTimeout` задаёт минимальную задержку, но callback выполнится лишь когда стек освободится и более приоритетные задачи не задержат его.
  • В HTML важно аргументировать семантику: единый `h1` как главный заголовок, иерархия `h1`–`h6`, а также различия `article`, `section`, `aside`, `nav`, `header` и `footer`; реальные табличные данные нужно размечать `table`, а не Grid или Flex.
  • Для изображений нужно резервировать размеры через атрибуты или CSS, чтобы не допускать layout shift; обсудить выбор JPEG/PNG/SVG/WebP, fallback через `picture` или серверную content negotiation и ограничения SVG-спрайтов между доменами.
  • По CSS подготовить сравнение BEM, Tailwind и подходов с изоляцией на уровне компонентов: BEM требует дисциплины именования, Tailwind может ухудшать читаемость разметки, а динамически собираемые классы нужно явно включать в safelist сборщика.

Рекомендуем посмотреть