AI
prepair.app
Пройти інтерв'ю →
EnglishРусскийУкраїнська
🅰️

Middle Angular Frontendпитання на співбесіді Angular

Middle · 2–4 роки досвіду

Співбесіда Angular охоплює впровадження залежностей, RxJS, change detection і TypeScript — фреймворк суворий, тому питання перевіряють, чи розумієте ви його механіку. Нижче — найчастіші з еталонними відповідями. Middle: глибше розуміння, оптимізацію та реальні робочі ситуації.

Теми для підготовки

Dependency Injection
RxJS та Observables
Change Detection
Модулі й компоненти
Реактивні форми
TypeScript

6 питань рівня Middle з відповідями

1

У чому різниця між Observable і Promise?

Відповідь

Promise — це одне майбутнє значення, яке починає виконуватись негайно і не може бути скасоване. Observable — потік із нуля або більше значень, лінивий до підписки, скасовуваний через відписку і перетворюваний операторами на кшталт debounce, retry чи switchMap. Для HTTP-запитів практична вигода у скасуванні: підказка в пошуку може відкинути попередній запит, доки користувач продовжує друкувати.

2

Поясніть change detection. Чим OnPush відрізняється від Default?

Відповідь

Change detection обходить дерево компонентів після подій, таймерів або HTTP-відповідей і перемальовує змінені привʼязки. Default перевіряє кожен компонент на кожному циклі. OnPush перевіряє компонент лише коли змінилося посилання у вхідній властивості, всередині сталася подія або async pipe видав значення — тому OnPush вимагає імутабельних даних: зміна обʼєкта на місці не змінює посилання, і подання не оновиться.

3

Що таке map, switchMap і mergeMap? У чому різниця?

Відповідь

map перетворює кожне значення, що надійшло. switchMap і mergeMap розгортають вкладений observable: switchMap скасовує попередню внутрішню підписку при надходженні нового значення, mergeMap виконує всі паралельно. switchMap беруть для пошуку або навігації, де важливий лише останній результат, mergeMap — коли кожен запит зобовʼязаний завершитися, а concatMap — коли важливий порядок.

4

Що таке ngOnInit і чим він відрізняється від конструктора?

Відповідь

Конструктор виконується при створенні екземпляра класу, до того як Angular заповнив вхідні привʼязки, тому там вхідні властивості ще undefined. ngOnInit виконується після першого проходу привʼязок, і саме туди належить ініціалізація, що залежить від входів. За домовленістю конструктор лише приймає впроваджені залежності, а реальну підготовку робить ngOnInit.

5

У чому різниця між template-driven і reactive формами?

Відповідь

Template-driven форми будують модель неявно з директив у шаблоні й підходять для простих випадків. Reactive форми описують FormGroup у класі компонента, завдяки чому валідація, динамічні контроли й тестування стають явними та типобезпечними. Reactive рекомендують за замовчуванням для всього складнішого за форму логіну, бо стан форми живе в коді, де про нього можна міркувати.

6

Як уникнути витоків памʼяті при роботі з Observable?

Відповідь

Підписка, яку не закрили, утримує свій колбек і захоплену область видимості живими й після знищення компонента. Найчистіше рішення — async pipe, який підписується й відписується сам. Інакше застосовують takeUntilDestroyed або збирають підписки й відписуються в ngOnDestroy — типова похибка це довгоживучий потік на кшталт подій роутера або вебсокета.

🦎

Прочитати відповіді недостатньо

На співбесіді ти говориш вголос під тиском. Кем поставить ті самі питання, оцінить кожну відповідь і покаже, що саме підтягнути.

Пройти інтерв'ю Middle Angular Frontend →
Безкоштовно · 3 інтерв'ю на місяць

Інші рівні — Angular Frontend

Junior Angular FrontendSenior Angular FrontendУсі питання Angular Frontend

Інші спеціалізації

🔍Middle QA Manual🤖Middle QA AutomationMiddle Java Backend🐍Middle Python Backend🐘Middle PHP Backend🦫Middle Go Backend🟢Middle Node.js Backend⚛️Middle React Frontend💚Middle Vue FrontendMiddle Next.js