Вернуться в видеотеку#9 С Java на JavaScript в 35. Собеседование на Frontend Junior разработчика
Выпуск «Отсобеседования» с учебным интервью кандидата Дмитрия на Junior Frontend. Собеседующие проверяют глубину понимания JavaScript, браузерных API, HTML-семантики, доступности и CSS, после чего дают развёрнутую обратную связь.
- Направление
- Frontend
- Формат
- Мок-собеседование
- Компания
Делимобиль- Грейд
- Junior
- Длительность
- 2 ч 12 мин
Коротко о видео
Это учебное 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 сборщика.