60 вопросов с собеседований для фронтенд-разработчика
60 реальных вопросов с собеседований для фронтенд-разработчика
Накидал список вопросов, которые реально встречаются на собесах. Без теорий и воды — только то, что нужно объяснять своими словами.
О чём это вообще
Я периодически хожу на собеседования. Не чтобы уволиться, а чтобы понять, что сейчас происходит на рынке. И заметил одну штуку: интервьюерам плевать на твои красивые рассуждения. Им нужны конкретные ответы с ключевыми словами. Сказал не то — поставили минус и пошли дальше.
Этот список собрал примерно с 50 собесований — своих и тех, кто делился опытом. Тут нет вопросов для стажёров, но и сеньорских заморочек тоже нет. Только то, что спрашивают обычным разработчикам в обычных компаниях.
JavaScript
Основы
1. Как работает замыкание (closure) и где его в жизни применяют?
2. Чем var, let и const отличаются? Что за зверь такой «временная мёртвая зона»?
3. Чем стрелочная функция отличается от обычной (function declaration)?
4. Что такое прототипы и как работает это ваше прототипное наследование?
5. Как в JS устроен сборщик мусора? Что значит «условие достижимости»?
Контекст и функции
6. Какие есть способы привязать контекст (bind, call, apply)? В чём между ними разница?
7. Что такое рекурсия и чем она опасна (кроме того, что можно стек пробить)?
8. Что такое контекст выполнения и от чего вообще зависит this?
Асинхронность
9. Как работают промисы? Чем Promise отличается от async/await?
10. Какие статические методы есть у Promise? (кроме resolve/reject)
События
11. Что такое всплытие и погружение событий (event propagation)?
Данные
12. Какими способами можно клонировать объект? (без библиотек)
13. Что такое Web API в браузере?
Алгоритмы
14. Что такое Big O и как вообще считают сложность алгоритмов?
Сеть
15. Что такое WebRTC и WebSocket? Когда их применяют?
React
Базовые вещи
16. Что такое Virtual DOM и как он работает под капотом?
17. Как работает алгоритм сравнения (reconciliation) в React?
18. Зачем нужен key в списках и что будет, если его не указать?
19. Что такое хуки? С какими чаще всего работаешь?
Хуки подробнее
20. Чем useEffect отличается от useLayoutEffect?
21. В чём разница между useMemo и useCallback? Когда что применять?
22. Зачем нужны рефы (refs) и как ими пользоваться?
23. Что такое Fragment? Почему нельзя просто обернуть в div?
Продвинутое
24. Что такое Higher-Order Components (HOC)? Где может пригодиться?
25. Из-за чего компонент может перерендериться, когда не должен?
26. Осталось ли что-то от классовых компонентов в современном React?
27. Зачем нужны кастомные хуки? (кроме того, чтобы вынести логику)
28. Что нового появилось в React 19? (если уже успел пощупать)
TypeScript
29. Что такое Utility Types? Какие использовал?
30. Что такое обобщения (generics) и зачем они нужны?
31. Как ограничить обобщение (сужение типа)?
32. Чем Pick отличается от Omit?
33. Какие неочевидные настройки в tsconfig.json приходилось делать?
Управление состоянием и данные
Хранение
34. Какие способы хранения данных на фронте есть? Чем localStorage отличается от sessionStorage и cookie?
35. Что такое cookie? Зачем нужен флаг HttpOnly? Какие у cookie есть ограничения?
State Management
36. Если проект маленький и не хочется тащить Redux, что можно использовать?
37. Чем похожи и чем отличаются React Query и Redux?
38. Что такое RTK Query? В чём его удобство?
39. Что такое Redux Saga? Когда без неё не обойтись?
Формы
40. Какие библиотеки для работы с формами знаешь? (кроме React Hook Form)
Сеть и безопасность
41. Из чего состоит HTTP-запрос?
42. Что такое CORS? Почему он появляется и как с ним жить?
43. Чем HTTP отличается от HTTPS?
44. Что такое HTTP-only куки? Зачем их использовать?
45. Какие уязвимости в вебе знаешь? Как от них защищаться?
Производительность
46. Как оптимизировать фронтенд? Что такое FCP, LCP, CLS?
47. Какими инструментами меряешь производительность (Lighthouse, Performance, Network)?
48. Что такое Shadow DOM? Где применяется?
Стили
49. Что такое специфичность CSS? Как считаются приоритеты?
Git
50. Чем git rebase отличается от git merge? Когда что использовать?
51. Чем git pull отличается от git fetch?
52. Что такое git blame? (кроме как найти, кого винить)
53. Что делает git cherry-pick?
54. Как организуешь ветки, если есть dev, staging, prod?
55. Что такое Trunk Based Development (TBD)?
Архитектура и подходы
56. Какие паттерны проектирования используешь в работе?
57. Что такое KISS, DRY, SOLID, YAGNI? Объясни своими словами.
58. Что такое SOLID? Применим ли он на фронтенде?
59. Работал с валидацией данных на клиенте? Как именно?
Вместо заключения
Этот список — не ответы на билеты. Это скорее карта: если на какой-то вопрос не можешь ответить — иди разбираться.
И главное: подготовка к собесу — это не выучить ответы, а научиться объяснять так, чтобы тебя понимали. Попробуй рассказать это вслух. Другу, жене, коту, диктофону — неважно. Работает лучше любого учебника.
P.S. Буду дополнять и обновлять.
Была ли полезна статья?