Întrebările de Interviu Angular de Așteptat

De Aaron Cao · Actualizat la

Întrebările de Interviu Angular de Așteptat
Așteaptă mai întâi change detection: ce declanșează o verificare, ce schimbă OnPush și cum se potrivesc signals. Apoi dependency injection, alegerea operatorului RxJS și curățarea subscription-urilor. Majoritatea rundelor adaugă un exercițiu live, de obicei o căutare typeahead construită cu un service, debounceTime și switchMap.

Așteaptă mai întâi change detection: ce declanșează o verificare, ce schimbă OnPush și cum se potrivesc signals. Apoi dependency injection, alegerea operatorului RxJS și curățarea subscription-urilor. Majoritatea rundelor adaugă un exercițiu live, de obicei o căutare typeahead construită cu un service, debounceTime și switchMap.

Ce concepte Angular sunt întrebate cel mai des?

Suprafața API a Angular este vastă, iar listele de întrebări publicate tratează fiecare decorator ca fiind la fel de probabil să apară. Nu sunt la fel de probabile. Această secțiune acoperă zonele care decid de fapt majoritatea rundelor, astfel încât practica ta să corespundă distribuției reale. Patru grupuri domină:

  • Change detection: ce declanșează o verificare, cum Zone.js aplică patch-uri API-urilor asincrone, ce schimbă OnPush și cum signals permit Angular să sară peste muncă.
  • Dependency injection: injectoare ierarhice, providedIn, token-uri de injecție și funcția inject() față de parametrii constructorului.
  • RxJS: observable față de promise, alegerea operatorului potrivit și curățarea subscription-urilor înainte ca o componentă să fie distrusă.
  • Arhitectura componentelor: componente standalone, input-uri și output-uri, content projection și lifecycle hooks.

Cunoașterea versiunilor contează mai mult aici decât în majoritatea rundelor pentru alte framework-uri, pentru că Angular și-a schimbat direcția. Componentele standalone, blocurile de control flow integrate @if și @for, deferrable views și signals au apărut toate în versiunile majore recente, așa că intervievatorii întreabă adesea ce ai scrie azi față de ce folosește o bază de cod mai veche. Cunoașterea ambelor, și de ce s-a schimbat framework-ul, lasă o impresie mai bună decât alegerea unei tabere.

Cât de aprofundate sunt întrebările despre RxJS și signals?

Mai aprofundate decât simple nume de operatori. Întrebarea RxJS care separă nivelurile este care operator de flattening se potrivește: switchMap anulează cererea internă anterioară și se potrivește pentru un typeahead, mergeMap rulează totul în paralel, concatMap păstrează ordinea, iar exhaustMap ignoră evenimentele noi cât timp unul este încă în desfășurare, de aceea se potrivește pentru un buton de trimitere. Intervievatorii pun apoi întrebarea despre scurgere: ce se întâmplă cu o subscription manuală când componenta este distrusă, și de ce async pipe sau takeUntilDestroyed elimină problema.

Întrebările despre signals sunt mai noi și de obicei încep de la motivație, nu de la API. Așteaptă-te să explici ce este un signal, cum computed derivă din el, la ce servește un effect, și de ce signals oferă Angular un mod mai fin de a ști ce s-a schimbat decât reverificarea întregului arbore de componente. Un răspuns puternic leagă cele două subiecte: signals și OnPush reduc amândouă munca pe care o face change detection, dar signals fac asta urmărind citirile, nu îngustând momentul în care rulează o verificare.

Intervievatorii nu se așteaptă să fi folosit deja fiecare funcție recentă. Se așteaptă să spui în ce versiune ai lucrat ultima dată și să raționezi clar despre rest.

Ce exerciții de live coding ar trebui să aștepți?

Majoritatea rundelor Angular includ construirea a ceva mic în timp ce intervievatorul urmărește. Exercițiile recurente sunt stabile de la o companie la alta:

  • Apelarea unui API dintr-un service și randarea rezultatului cu async pipe.
  • Construirea unei căutări typeahead cu debounceTime, distinctUntilChanged și switchMap.
  • Scrierea unui reactive form cu un validator personalizat și stări de eroare vizibile.
  • Transmiterea datelor între o componentă parent și una child, apoi mutarea lor într-un service.
  • Adăugarea unei rute cu o componentă lazy-loaded și un guard.

Un inginer front-end care intervievează pentru un rol de produs de nivel mediu, de exemplu, ar putea construi typeahead-ul, apoi ar putea fi întrebat mai departe ce se întâmplă când răspunsurile sosesc în afara ordinii, cum se arată o stare de încărcare și ce ar trebui să se întâmple când utilizatorul șterge inputul. Acele extensii sunt cele care decid runda, așa că exersează întrebările suplimentare, nu drumul ideal. Seturile adiacente cu care rundele Angular încă se deschid adesea, inclusiv bazele de JavaScript și TypeScript pur, se află în centrul de bănci de întrebări.

Cum exersezi astfel încât să se transfere în runda reală?

Citirea unei liste de întrebări construiește recunoaștere, nu memorare, iar runda testează memorarea în timp ce cineva urmărește. Soluția este repetiția în forma reală a rundei: construiește exercițiile standard dintr-un proiect gol, narează cu voce tare deciziile de change detection și subscription în timp ce scrii, și absoarbe întreruperile fără să pierzi firul. Rularea setului ca o repetiție vorbită, câte o întrebare pe rând cu întrebări suplimentare, este exact la ce servește exercițiul de mock interview.

O limită care merită menționată clar: rundele live Angular rulează aproape mereu într-un editor partajat sau cu ecranul tău vizibil, iar orice apare pe acel ecran este vizibil pentru intervievator. Un asistent își are locul în pregătire și în rundele conduse prin conversație, nu pe un ecran partajat. Ce formate permit ce este acoperit în tipurile de interviu.

Întrebări frecvente

Mai trebuie să știu NgModules?

La nivel de citire, da. Multe aplicații Angular din producție rulează încă pe NgModules, așa că așteaptă-te la întrebări despre ce declara un modul și cum providedIn a înlocuit majoritatea array-urilor de provider. Întrebările despre cod nou sunt puse pe componente standalone, care sunt implicite în versiunile recente.

AngularJS este același lucru cu Angular?

Nu, iar intervievatorii uneori verifică acest lucru. AngularJS este linia 1.x cu scope-uri, digest cycle-uri și controllere. Angular de la versiunea 2 încolo este un framework separat, construit pe TypeScript și componente. Dacă o descriere de job spune AngularJS, confirmă la care se referă înainte să te pregătești.

Câtă RxJS îmi trebuie dacă echipa folosește signals?

Tot mult. Signals acoperă bine starea componentei, dar apelurile HTTP, evenimentele router-ului și fluxurile de valori ale formularelor sunt observable, așa că alegerea operatorului și curățarea continuă să apară. Echipele combină ambele, iar explicarea unde se potrivește fiecare este o întrebare comună de senior.

Intervievatorii întreabă despre testare?

De obicei ca strategie, nu ca memorare de API. Așteaptă-te la ce ai testa la nivel de componentă față de end to end, cum TestBed configurează o componentă și cum ai simula un service. A numi compromisul contează mai mult decât a recita un matcher.

Despre câte versiuni Angular ar trebui să pot vorbi?

Cea în care ai lucrat, plus ce s-a schimbat de atunci. Intervievatorii întreabă despre componente standalone, blocurile de control flow și signals pentru că acele răspunsuri semnalează actualitate. A spune în ce versiune ai livrat ultima dată și a raționa clar despre rest este un răspuns complet.

Întrebări similare

← Mai mult despre Întrebări de interviu după rol și temă