Frontend
Aké typy sú v TypeScript, ktoré nie sú v JavaScript? Porozprávaj mi o utility types.
Ako vieš číslo otázky, aby si otvoril obrazovku otázky?
Čo sa deje, keď sa HTML dostane do prehliadača? Čo sú blokujúce entity a ako s nimi pracovať?
// Dajú sa tri typy. Na ich základe je potrebné vytvoriť typ Delivery, ktorý bude obsahovať všetky polia z daných typov.
async function f(result = 1) { let promiseB = new Promise(resolve => { setTimeout(() => resolve("1e"), 200) }); let promiseA = new Promise(resolve => { setTimeout(() => resolve("ab"), 1000) }); result += await promiseA; result += await promiseB; alert(result); // ? } f(null);
Poznáte operátor non-null assertion (!) v TypeScript? Prečo je považovaný za anti-pattern?
Rozprávaj o CORS.
Úloha: implementovať funkciu sumSquares, ktorá sčíta štvorce čísel z poľa, pomocou vlastnej funkcie reduce. Môže sa meniť iba funkcia sumSquares.
Chápete, ako funguje Zustand pod kapotou?
Je požiadavka OPTIONS odosielaná pri každom cross-dome požiadavku alebo len keď je to potrebné? Aký je rozdiel medzi jednoduchými a zložitými požiadavkami v tomto kontexte?
Ako previesť arguments na pole starým spôsobom (ES5), bez Array.from a spread-operatora?
Použili ste nejakú dohodu na písanie commitov?
Na produkciji je prišlo do napake, treba ju nujno popraviti, vendar je veja dev že zelo napredovala z novimi funkcijami. Kako bi ukrepali?
Stretli ste sa niekedy s projektovým manažérom v režime prísnych termínov? Keď je potrebné niečo urobiť veľmi rýchlo, ale technicky to nie je možné rýchlo urobiť.
Je potrebná samostatná funkcia toggleLoading, alebo sa bez nej dá?
Predstavte si frontu makro úloh s piatimi `setTimeout`, zatiaľ čo mikroúlohy nekonečne pridávajú nové mikroúlohy, napríklad prostredníctvom rekurzívneho `Promise.resolve().then()`. Čo sa stane s rozhraním a či sa tieto päť timeoutov niekedy vykonajú? Prečo?
#React registračný formulár 1. Vysvetlite, ako funguje StateProvider, podeľte sa o svoje myšlienky s interviewérom. 2. Pozrite si /src/api/mock, vysvetlite, ako to funguje. 3. Skontrolujte farbu tlačidla SubmitButton a opravte ju. 4. Implementujte klientskú validáciu formulára v komponentu Signup. (\*) Majte na pamäti úlohu číslo 9. Pravidlá: - Polia Používateľské meno, Email, Heslo a Opakovať heslo by mali mať najmenej 6 znakov; - Heslo by malo zodpovedať Opakovať heslo; - Validácia by mala byť vykonaná po kliknutí na tlačidlo "SignUp"; - Polia s neplatnými hodnotami by mali byť označené (props error a helperText); 6. Odpoveď API môže obsahovať chybu, ktorá by mala byť zobrazená používateľovi v blízkosti príslušného poľa. 7. Uistite sa, že komponent UserName zobrazuje nové používateľské meno po úspešnom odoslaní. 8. Implementujte nový komponent SignupSuccess. Mal by byť zobrazený namiesto registračného formulára. 9. Implementujte serverovú validáciu pre príslušné polia. --- Kód z mock.ts: ```typescript const fakeResponse = (userName) => ({ code: 200, user: { id: 42, userName, }, }); let a = 0; const api = { '/signup': function (userName: string, email: string, password: string) { a++; return new Promise((resolve, reject) => { setTimeout(() => { if (a % 2 === 0) { return resolve(fakeResponse(userName)); } else { return reject( new Error( `Používateľské meno "${userName}" je už obsadené. Skúste iné.` ) ); } }, 500); }); }, }; export default api; ```
Aké vylepšenia by mohli byť vykonané na zvýšenie kvality produktu v budúcnosti?
Spomněli jste Docker, CI/CD, GitHub Actions, GitLab — můžete objasnit, co přesně jste dělali, jaké pipeline, co bylo v kontejnerech?
Úloha: implementovať prihlasovací formulár v React. Požiadavky: - dve polia: email + heslo - kontrolované vstupy - odoslanie formulára s preventDefault - základná validácia (pole nesmie byť prázdne) - pri odoslaní vykonať asynchrónnu požiadavku (môže byť simulovaná pomocou setTimeout) - zobraziť stav načítania (tlačidlo zakázané) - zobraziť chybu pri neúspešnom prihlásení Voliteľné (nepovinné): - validácia emailu