Вообще вопросы по hard-skills можно разделить на 8 основных разделов:
JS, TS, верстка, браузер и сети, фреймворк, методологии, computer science, процессы
В каждом из разделов есть около 40 core-вопросов, и многочисленные вариации на них (спрашивают одно и то же, но в другой формулировке)
В этом посте взял именно точные формулировки вопросов, так, как их задавали на собеседованиях, поэтому где-то может звучать странно, но именно с такими формулировками приходится встречаться
Ну и, конечно, старался отбрасывать стаднартные и совсем базовые вопросы, которые и так можно найти в интернете.
1️⃣ JavaScript
— Мутирующие/не мутирующие методы массива?
— Прототипное наследование?
— Что означают [[ ]] (внутренние слоты, например [[Prototype]])?
— Чем отличается использование Promise и async/await?
— Что такое контекст выполнения? Что такое this?
— Какие есть способы привязать контекст (bind, call, apply)? В чем разница?
— Что такое замыкание?
— Виды функций и их отличия?
— Как устроен сборщик мусора в JS? Какой алгоритм? Условие достижимости?
— Что такое рекурсия и чем она опасна?
— Что такое всплытие и погружение событий (event propagation)? Делегирование событий?
— Какие есть способы клонировать объект в JavaScript? Какие плюсы и минусы у каждого способа?
— Чем отличается оператор || от ??
— Что такое Promise?
— Методы Promise (then, catch, finally, all, race, any, allSettled)?
— Можно ли обработать ошибку через then?
— Async / await? Что возвращает async функция?
— Что такое генераторы? Где встречаются?
— AbortController? Зачем нужен?
— Как работает reduce()?
— Разница между Map и обьектом?
— WeakMap / WeakSet vs Map / Set?
— Как работает Event Loop? Какие очереди есть? Какие способы создать макро и микрозадачу?
— Что такое requestAnimationFrame и requestIdleCallback? Где применяются?
— Что такое IntersectionObserver и ResizeObserver? Где применяются?
— Что такое каррирование?
2️⃣ Браузер и сети
— Что происходит при вводе URL в адресную строку?
— Как работает Garbage Collection?
— Из чего состоит HTTP запрос?
— Какие флаги есть у cookie? HttpOnly?
— Какие есть варианты для хранения данных на фронтенде?
— Что такое Web API?
— Как оптимизировать приложение (метрики FCP, LCP, CLS и т.д.)?
— Какие инструменты для анализа производительности используешь (Lighthouse,
Performance, Network и т.д.)?
— Что такое и для чего нужны WebRTC, WebSocket?
— Что такое Shadow DOM?
— Как происходит рендер после того как мы получили html?
— Объясните разницу между HTTP и HTTPS?
— Что такое CORS? Preflight-запрос? Запрос с методом OPTIONS?
— Стадии рендера layout, paint, compositing?
— Расскажи про webWorker и serviceWorker?
— Что такое SPA и PWA?
3️⃣ React (основы, хуки, оптимизация, архитектура)
— Какой классовый компонент до сих пор используется в React?
— Что нужно не забыть сделать, если есть в компоненте таймер?
— Что такое Virtual DOM?
— Какие хуки чаще всего используются?
— useEffect vs useLayoutEffect?
— Что такое HOC и React.memo?
— Почему memo() не всегда работает
— Ограничения React Context
— Оптимизация React.lazy и Suspense
— useMemo vs useCallback
— Избежание лишних ререндеров
— Как оптимизировать загрузку тяжелых компонентов
— Библиотеки для форм RHF и RFF
— Использование атрибута name у input
— Что нового в React 18, React 19?
— Что такое Fiber?
4️⃣ TypeScript (типы, безопасность, архитектура)
— В чем разница между interface и type в TypeScript?
— Enum и во что компилируется?
— Во что компилируется type и interface?
— any vs unknown vs never
— Что такое дженерики?
— Что такое extends в TS? Наследование или сужение типа?
— Разница между keyof и typeof
— Что такое вспомогательные типы (Utility Types)?
— Использование any и as
Ну и конечно, лучше учить не ответы на различные формулировки вопросов, а основу, то есть то, что этими вопросами пытаются проверить.
Если список зашел, ставьте 🤓 и я сделаю вторую часть по методологиям, computer science, фреймворкам и процессам 🫡
Пишите в комментариях еще вопросы, которые вам попадались)
Кто я | Кейсы | Менторство