Співбесіда на Frontend: тренування з ШІ
Сторінка для фронтенд-розробників, які готуються до технічної співбесіди. Підійде, і якщо попереду перша співбесіда на junior frontend, і якщо ви йдете на middle чи senior. ШІ-інтерв'юер питає про HTML і доступність, CSS, роботу браузера, JavaScript і TypeScript, фреймворки, мережу та архітектуру. Ви відповідаєте голосом на до 50 питань і отримуєте звіт з оцінками за технічну точність, повноту і ясність.
Про що питає ШІ на співбесіді frontend
Семантичний HTML і доступність
Семантичні теги, landmarks, заголовки, форми й label, коли потрібні ARIA-атрибути, а коли вони шкодять, навігація з клавіатури та фокус.
CSS: каскад і верстка
Специфічність, каскад і @layer, box model, Flexbox проти Grid, адаптивна верстка, container queries, :has() і нативний CSS nesting.
Браузер, рендеринг і Core Web Vitals
Critical rendering path, layout, paint і composite, reflow, LCP, INP і CLS, lazy loading, оптимізація зображень, шрифтів і бандла.
JavaScript і TypeScript
Замикання, this, прототипи, event loop і мікрозадачі, async/await, а в TypeScript — generics, union і narrowing, utility types, unknown проти any.
Фреймворки: React, Vue, Angular
Компонентна модель, реактивність і ре-рендери, життєвий цикл, hooks, Composition API, signals в Angular, SSR, гідратація і Server Components.
Мережа, кешування і безпека
HTTP-методи й статуси, HTTP/2 і HTTP/3, Cache-Control, ETag, CDN, CORS і preflight, XSS, CSRF, Content Security Policy, cookie-атрибути.
Стан і архітектура
Локальний, глобальний і серверний стан, TanStack Query, Redux Toolkit, Pinia, структура проєкту, монорепозиторії, мікрофронтенди та їхня ціна.
Тестування
Піраміда тестів, unit-тести на Vitest або Jest, Testing Library і тестування поведінки, а не реалізації, e2e на Playwright, моки мережі.
Питання на співбесіді frontend за рівнями
Junior
Чим семантичні теги кращі за div і чому це важливо?
Що має бути в сильній відповіді:Теги на кшталт header, nav, main, article, button і label передають сенс: скрінрідер оголошує їх як landmarks і елементи керування, браузер дає вбудовану клавіатурну підтримку, а пошуковики краще розуміють структуру. Сильна відповідь згадує, що div з onClick не отримує фокус і не реагує на Enter без додаткового коду, тому для дій потрібен справжній button.
Як рахується специфічність CSS-селекторів?
Що має бути в сильній відповіді:Специфічність порівнюється як трійка: ID, потім класи, атрибути й псевдокласи, потім теги й псевдоелементи; інлайн-стилі сильніші за будь-який селектор, а !important перекриває звичайні правила. При рівній специфічності перемагає правило, яке стоїть пізніше. Добре додати, що :where() має нульову специфічність, а @layer дозволяє керувати пріоритетом без гонки специфічності.
Чим Flexbox відрізняється від Grid і коли що обрати?
Що має бути в сильній відповіді:Flexbox — одновимірна верстка: елементи вирівнюються в рядок або колонку, і розміри залежать від контенту. Grid — двовимірна: ви задаєте рядки й колонки, і елементи розставляються по сітці. Типовий вибір: Flexbox для навбару, кнопок і рядків карток, Grid для каркасу сторінки й складних сіток, причому їх часто поєднують.
Чим відрізняються let, const і var?
Що має бути в сильній відповіді:var має функціональну область видимості і піднімається зі значенням undefined, а let і const — блокові й до оголошення перебувають у temporal dead zone, тож звернення кидає ReferenceError. const забороняє перепризначення змінної, але об'єкт чи масив у ній можна змінювати. У сучасному коді var практично не використовують.
Що таке делегування подій?
Що має бути в сильній відповіді:Події спливають від цільового елемента до батьків, тому один обробник на контейнері може обробляти кліки по всіх дочірніх елементах, перевіряючи event.target, наприклад через closest(). Це економить обробники і працює для елементів, доданих пізніше. Варто згадати stopPropagation і те, що деякі події, як focus, не спливають (замість них є focusin).
Middle
Поясніть event loop: у якому порядку виконаються setTimeout, Promise.then і синхронний код?
Що має бути в сильній відповіді:Спочатку виконується весь синхронний код у call stack, потім браузер вичищає чергу мікрозадач (колбеки промісів, queueMicrotask), і лише після цього бере наступну макрозадачу на кшталт setTimeout. Між макрозадачами браузер може відрендерити кадр. Тому Promise.then завжди спрацює раніше за setTimeout(fn, 0), а нескінченний ланцюжок мікрозадач блокує рендеринг.
Що таке Core Web Vitals і як покращити INP?
Що має бути в сильній відповіді:Core Web Vitals — це LCP (швидкість появи головного контенту, добре до 2,5 с), INP (затримка реакції на взаємодію, добре до 200 мс, з 2024 року замінив FID) і CLS (стабільність верстки, добре до 0,1). INP покращують, розбиваючи довгі задачі на main thread, відкладаючи неважливу роботу, зменшуючи JS-бандл і кількість зайвих ре-рендерів. Сильна відповідь згадує вимірювання на реальних користувачах, а не лише в Lighthouse.
Що таке CORS і навіщо потрібен preflight-запит?
Що має бути в сильній відповіді:Браузер за same-origin policy не дає скрипту читати відповідь з іншого origin, якщо сервер явно не дозволив це заголовками Access-Control-Allow-*. Для «непростих» запитів, наприклад з методом PUT, JSON-тілом або кастомними заголовками, браузер спершу шле OPTIONS-preflight. Важливо сказати, що CORS — захист користувача в браузері, а не сервера: curl його ігнорує.
Як захиститися від XSS у фронтенд-застосунку?
Що має бути в сильній відповіді:Не вставляти недовірені дані як HTML: використовувати textContent і автоекранування фреймворків, а dangerouslySetInnerHTML чи v-html — лише з санітизацією, наприклад через DOMPurify. Додатковий рівень захисту — Content Security Policy, яка забороняє інлайн-скрипти й чужі джерела, та HttpOnly-cookie для сесії, щоб скрипт не міг її вкрасти.
Як ви вирішуєте, де зберігати стан у застосунку?
Що має бути в сильній відповіді:Спершу тримаю стан якнайближче до місця використання і піднімаю його лише коли він потрібен кільком компонентам. Серверні дані відокремлюю і віддаю бібліотеці на кшталт TanStack Query, яка кешує, дедуплікує і рефетчить; стан фільтрів і пагінації часто краще тримати в URL. Глобальний store (Redux Toolkit, Zustand, Pinia) — лише для справді спільного клієнтського стану.
Senior
Як би ви діагностували повільну сторінку в продакшні?
Що має бути в сильній відповіді:Почати з польових даних — RUM або CrUX, — щоб зрозуміти, яка метрика страждає, на яких сторінках і пристроях. Далі відтворити в DevTools Performance з тротлінгом: шукати довгі задачі, блокуючі ресурси, важкий LCP-елемент, layout shifts. Виправлення пріоритезувати за впливом і закріпити бюджетами продуктивності в CI, щоб регресії не поверталися.
CSR, SSR, SSG чи стрімінг: як обрати стратегію рендерингу?
Що має бути в сильній відповіді:SSG підходить для контенту, що рідко змінюється, і дає найшвидший TTFB з CDN; SSR — для персоналізованих чи часто оновлюваних сторінок, де важливі SEO і швидкий перший показ; CSR — для застосунків за логіном. Стрімінг SSR і Server Components дозволяють віддавати частини сторінки раніше й менше JS на клієнт. Сильна відповідь говорить про ціну: навантаження на сервер, вартість гідратації і складність кешування.
Коли мікрофронтенди виправдані, а коли ні?
Що має бути в сильній відповіді:Вони виправдані, коли кілька незалежних команд мають релізити свої частини продукту окремо і організаційні вигоди переважають технічну ціну. Ціна — дублювання залежностей, більший бандл, складність спільного стану, дизайн-системи і наскрізного тестування. Для однієї-двох команд зазвичай достатньо модульного моноліту в монорепозиторії з чіткими межами між модулями.
Як ви побудуєте стратегію тестування фронтенду?
Що має бути в сильній відповіді:Основа — швидкі unit- та інтеграційні тести компонентів через Testing Library, які перевіряють поведінку очима користувача, з моками мережі на рівні запитів, наприклад MSW. Поверх — невелика кількість e2e на Playwright для критичних сценаріїв: логін, оплата, ключові форми. Додати візуальні й a11y-перевірки, стежити за flaky-тестами і запускати все в CI на кожен pull request.
Як порівняти моделі реактивності React, Vue і Angular?
Що має бути в сильній відповіді:React перезапускає функцію компонента при зміні стану і порівнює дерево, тому мемоізація (вручну або через React Compiler) впливає на продуктивність. Vue відстежує залежності через проксі й оновлює лише те, що читає змінені дані. Angular перейшов від Zone.js до signals з точковими оновленнями і підтримує zoneless-режим. Сильна відповідь пояснює, як ця різниця впливає на продуктивність і ментальну модель команди.
Як проходить мок-співбесіда з Frontend
- Оберіть Frontend (та інші технології зі свого стеку), свій рівень і мову співбесіди: українську, англійську або російську. Або завантажте резюме й опис вакансії.
- Відповідайте на кожне запитання голосом, як на справжній співбесіді.
- Отримайте оцінку кожної відповіді за точністю, повнотою та зрозумілістю і звіт зі слабкими місцями.
Як відповідати на питання frontend уголос
- →Починайте з визначення одним реченням, а потім пояснюйте механізм: «CORS — це правило браузера, яке…», а не одразу деталі заголовків.
- →Код описуйте словами за кроками: «на контейнер вішаю один обробник, у ньому через closest шукаю кнопку». Інтерв'юер має уявити рішення без редактора.
- →Порівнюючи інструменти — Flexbox і Grid, SSR і CSR, Redux і TanStack Query, — називайте, коли обрали б кожен, а не лише різницю.
- →Підкріплюйте відповідь прикладом із проєкту: яку метрику покращили, який баг з кешем чи CORS знайшли і як.
- →Якщо не знаєте точно, скажіть, як перевірили б: DevTools, вкладка Network, MDN, специфікація. Це звучить сильніше, ніж вгадувати.
Часті запитання
Який фреймворк покривається: React, Vue чи Angular?
Базова frontend-співбесіда питає про концепції фреймворків загалом. Щоб отримати глибші питання по конкретному, додайте React, Vue або Angular як технологію разом з Frontend, і ШІ врахує ваш стек.
Можна пройти співбесіду українською чи англійською?
Так. Мову співбесіди обираєте перед стартом: українська, англійська або російська. Англійською зручно тренуватися перед інтерв'ю в іноземну компанію.
Чи є live coding?
Ні. Питання усні, ви відповідаєте голосом, редактора коду немає. Частина питань просить пояснити, як би ви щось реалізували чи дебажили, тож корисно тренуватися описувати код словами.
Можна тренуватися за моєю вакансією?
Так. Завантажте опис вакансії або резюме, і ШІ складе питання під вказаний там стек і рівень. Перша співбесіда до 5 питань безкоштовна, далі від $1.75 за співбесіду, без підписки.