Angular Állásinterjú-kérdések, Amikre Számíthatsz
Szerző: Aaron Cao · Frissítve

Először a change detection jön: mi váltja ki az ellenőrzést, mit változtat az OnPush, és hogyan illeszkednek ide a signals. Utána dependency injection, RxJS operátorválasztás és a subscription-ök eltakarítása. A legtöbb kör hozzáad egy élő gyakorlatot, jellemzően egy typeahead keresést, amit service-szel, debounceTime-mal és switchMap-pel építenek.
Mely Angular fogalmakat kérdezik a leggyakrabban?
Az Angular API-felülete hatalmas, és a publikált kérdéslisták úgy kezelnek minden decorator-t, mintha egyforma eséllyel jönne elő. Nem egyforma eséllyel jönnek elő. Ez a szakasz azokat a területeket fedi le, amelyek valóban eldöntik a legtöbb kört, hogy a gyakorlásod illeszkedjen a valós eloszláshoz. Négy csoport dominál:
- Change detection: mi váltja ki az ellenőrzést, hogyan patchel a Zone.js aszinkron API-kat, mit változtat az
OnPush, és hogyan engedik a signals, hogy az Angular kihagyjon munkát. - Dependency injection: hierarchikus injectorok,
providedIn, injection tokenek, és azinject()függvény a konstruktor paraméterekkel szemben. - RxJS: observable-ök a promise-okkal szemben, a megfelelő operátor kiválasztása, és a subscription-ök eltakarítása, mielőtt egy komponens megsemmisül.
- Komponensarchitektúra: standalone komponensek, inputok és outputok, content projection, és lifecycle hookok.
A verziótudatosság itt jobban számít, mint a legtöbb más framework körben, mert az Angular irányt váltott. A standalone komponensek, a beépített control flow blokkok, az @if és az @for, a deferrable views, és a signals mind a legutóbbi major verziókban érkeztek, ezért a kérdezők gyakran megkérdezik, mit írnál ma ahhoz képest, amit egy régebbi kódbázis használ. Ha mindkettőt ismered, és tudod, miért váltott irányt a framework, jobb benyomást kelt, mint az egyik oldal mellett kiállni.
Mennyire mélyek az RxJS és signals kérdések?
Mélyebbek, mint puszta operátornevek. Az RxJS-kérdés, amely elválasztja a szinteket, az, hogy melyik flattening operátor illik: a switchMap lemondja az előző belső kérést, és illik a typeahead-hez, a mergeMap mindent párhuzamosan futtat, a concatMap megőrzi a sorrendet, az exhaustMap pedig figyelmen kívül hagyja az új eventeket, amíg egy még folyamatban van, ezért illik egy submit gombhoz. A kérdezők ezután feltehetik a szivárgás-kérdést: mi történik egy kézi subscription-nel, amikor a komponens megsemmisül, és miért szünteti meg a problémát az async pipe vagy a takeUntilDestroyed.
A signals kérdések újabbak, és általában a motivációból indulnak ki, nem az API-ból. Számíts arra, hogy elmagyarázd, mi az a signal, hogyan vezeti le belőle a computed az értékét, mire jó egy effect, és miért ad az Angularnak a signals egy finomabb módot annak megtudására, hogy mi változott, mint a teljes komponensfa újraellenőrzése. Egy erős válasz összeköti a két témát: a signals és az OnPush is csökkenti a change detection által végzett munkát, de a signals ezt az olvasások követésével teszi, nem pedig azzal, hogy szűkíti, mikor fut le egy ellenőrzés.
A kérdezők nem várják el, hogy már minden újdonságot használtál. Azt várják, hogy elmondd, melyik verzióban dolgoztál utoljára, és tisztán érvelj a többiről.
Milyen élő kódolási gyakorlatokra számíthatsz?
A legtöbb Angular kör magában foglalja, hogy valami kicsit építesz, miközben a kérdező figyel. Az ismétlődő gyakorlatok cégek között is stabilak:
- API hívása egy service-ből, és az eredmény renderelése async pipe-pal.
- Typeahead keresés építése
debounceTime-mal,distinctUntilChanged-dzsel ésswitchMap-pel. - Reactive form írása egyedi validatorral és látható hibaállapotokkal.
- Adat átadása egy parent és egy child komponens között, majd feljebb emelése egy service-be.
- Route hozzáadása lazy-loaded komponenssel és guarddal.
Egy front-end mérnök, aki egy középszintű termékszerepre interjúzik, például megépítheti a typeahead-et, majd rákérdezhetnek arra, mi történik, ha a válaszok rossz sorrendben érkeznek, hogyan mutass loading állapotot, és mi történjen, ha a felhasználó törli a beviteli mezőt. Ezek a kiegészítések döntik el a kört, ezért a followup kérdéseket gyakorold, ne a boldog utat. A szomszédos halmazok, amelyekkel az Angular körök még gyakran nyitnak, beleértve a tiszta JavaScript és TypeScript alapokat, a kérdésbankok központjában találhatók.
Hogyan gyakorolj, hogy átvigye magát a valódi körre?
Egy kérdéslista elolvasása felismerést épít, nem felidézést, a kör pedig a felidézést teszteli, miközben valaki figyel. A megoldás az ismétlés a kör valós formájában: építsd fel a szokásos gyakorlatokat egy üres projektből, mondd hangosan a change detection és subscription döntéseidet gépelés közben, és nyeld el a megszakításokat anélkül, hogy elveszítenéd a fonalat. A halmaz lefuttatása szóbeli próbaként, kérdésenként egyesével followupokkal, pontosan az, amire a mock interjú gyakorlás való.
Egy korlátot érdemes egyértelműen kimondani: az élő Angular körök szinte mindig megosztott editorban vagy látható képernyővel futnak, és minden, ami azon a képernyőn van, látható a kérdezőnek. Egy asszisztens a felkészülésbe és a beszélgetésvezérelt körökbe való, nem egy megosztott képernyőre. Hogy mely formátumok mit engednek, azt az interjútípusok ismertetik.