Вернуться в видеотеку

Мок-собеседование на Senior Frontend-разработчика: JavaScript-задачи

Кандидат решает задачи по JavaScript под уточняющие вопросы интервьюера. Обсуждаются event loop и промисы, обход зависимостей, а также защита интерфейса от устаревших ответов запросов.

Источник: Тихон Галактионов

Открыть на YouTube

Таймлайн

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

Во второй части мок-собеседования на Senior Frontend-разработчика кандидат вслух разбирает несколько задач по JavaScript. В начале он объясняет порядок выполнения синхронного кода, промисов и макрозадач в event loop. Затем обсуждает функцию, которая ждёт результаты промисов, собирает их в массив и должна корректно обработать ошибки. В следующей задаче кандидат проектирует проверку зависимостей и отличает повторную ссылку от циклической зависимости, используя отдельные наборы для обхода. Финальная задача посвящена запросам из интерфейса: интервьюер предлагает хранить счётчик запросов в ref и сравнивать идентификаторы, чтобы не применить результат устаревшего запроса. По ходу записи интервьюер просит уточнять аргументацию и проверять решение на примерах.

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

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

  • При разборе event loop важно учитывать, что executor-функция Promise выполняется синхронно, а очередь микрозадач обрабатывается до следующей макрозадачи.
  • Для функции, объединяющей набор промисов, нужно явно обработать пустой массив и отклонение хотя бы одного промиса.
  • Для обнаружения циклов в графе зависимостей полезно различать множество текущего пути обхода и множество уже обработанных узлов.
  • В интерфейсных запросах можно сравнивать идентификатор текущего запроса с последним, чтобы игнорировать устаревший ответ.

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

32:14
FrontendJunior

Практическое Frontend-собеседование с задачами JavaScript

Запись технической frontend-секции собеседования в Avito: кандидатка разбирает потерю контекста this, strict mode, области видимости и event loop, а затем реализует DOM-список подсказок. В финале обсуждаются отмена устаревших запросов через AbortController, периодическое обновление данных и назначение HTTP-заголовков.