Вернуться в видеотекуСОБЕСЕДОВАНИЕ JUNIOR FRONTEND РАЗРАБОТЧИКА | FRONTEND | REACT
Публичное техническое интервью фронтенд-разработчика с практическими задачами по JavaScript, TypeScript и React. В конце — развёрнутый фидбэк и разговор о переезде кандидата в Норвегию.
- Направление
- Frontend
- Формат
- Техническое собеседование
- Грейд
- Junior
- Длительность
- 1 ч 17 мин
Коротко о видео
Автор проводит публичное техническое собеседование с фронтенд-разработчиком Тарасом, который рассказывает о четырёх годах опыта, 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.