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

СОБЕСЕДОВАНИЕ JUNIOR FRONTEND РАЗРАБОТЧИКА | FRONTEND | REACT

Публичное техническое интервью фронтенд-разработчика с практическими задачами по JavaScript, TypeScript и React. В конце — развёрнутый фидбэк и разговор о переезде кандидата в Норвегию.

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

Таймлайн

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

Автор проводит публичное техническое собеседование с фронтенд-разработчиком Тарасом, который рассказывает о четырёх годах опыта, React и работе над медицинским продуктом в Норвегии. Основная часть состоит из задач и разбора JavaScript, TypeScript и React: замыкания, ссылки, Map, event loop, React.memo, useCallback, useRef и оптимизация обработчика событий окна. В финале интервьюер даёт кандидату обратную связь о пробелах в базе, а кандидат делится личным опытом переезда и своим взглядом на рынок IT Норвегии.

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

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

  • Для задач наподобие createCounter важно отличать замыкание с «живым» доступом к переменной от свойства объекта, куда примитив был записан как снимок текущего значения.
  • Замыкание стоит объяснять через сохранение доступа функции к лексическому окружению, а не только через шаблон «функция возвращает функцию».
  • Нужно уверенно различать передачу примитивов по значению и работу объектов по ссылке; это проверяется и в сравнении объектов, и в удалении дубликатов массива.
  • Map полезен, когда ключами должны быть не только строковые свойства: например, объекты или массивы; его get возвращает значение либо undefined, что нужно учитывать в TypeScript.
  • В event loop микрозадачи обрабатываются после освобождения call stack с более высоким приоритетом, а рендеринг браузера — отдельный процесс, не «макрозадача».
  • React.memo не предотвращает ререндер, если в дочерний компонент передаётся новая ссылка на функцию; useCallback имеет смысл для стабильности ссылки и связки с мемоизацией, а не ради уменьшения числа созданных функций.
  • Для универсального хука подписки на window-событие можно хранить актуальный обработчик в useRef: подписка остаётся стабильной, а listener вызывает handlerRef.current.

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