Frontend
Co se stane, když se HTML dostane do prohlížeče? Jaké jsou blokující entity a jak s nimi pracovat?
// Dají se tři typy. Je třeba na jejich základě vytvořit typ Delivery, který bude obsahovat všechna pole z daných typů.
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);
Znáte operátor non-null assertion (!) v TypeScriptu? Proč je považován za anti-vzor?
Pověz o CORS.
Úkol: implementovat funkci sumSquares, která sčítá druhé mocniny čísel v poli, pomocí vlastnoručně napsané funkce reduce. Měnit lze pouze funkci sumSquares.
Chápete, jak Zustand funguje pod kapotou?
Je žádost OPTIONS odesílána v každém případě při cross-domenových požadavcích nebo pouze tehdy, když je to nutné? Jaký je rozdíl mezi jednoduchými a složitými požadavky v tomto kontextu?
Jak převést arguments na pole starým způsobem (ES5), bez Array.from a spread-operatoru?
Použili jste nějakou dohodu pro psaní commitů?
Na produkci se objevila chyba, je třeba ji urgentně opravit, ale větev dev je již daleko s novými funkcemi. Jak byste postupovali?
Setkali jste se někdy s projektovým manažerem v režimu přísných termínů? Když je potřeba něco udělat velmi rychle, ale technicky to není možné rychle udělat.
Je potřeba samostatná funkce toggleLoading, nebo ji lze obejít?
Představte si frontu makro úkolů s pěti voláními `setTimeout`, zatímco mikroúkoly nekonečně přidávají nové mikroúkoly, například prostřednictvím rekurzivního `Promise.resolve().then()`. Co se stane s rozhraním a jestli se těchto pět timeoutů někdy spustí? Proč?
#React registrační formulář 1. Vysvětlete, jak funguje StateProvider, sdílejte své myšlenky s interviewerem. 2. Podívejte se na /src/api/mock, vysvětlete, jak to funguje. 3. Zkontrolujte barvu tlačítka SubmitButton a opravte ji. 4. Implementujte validaci formuláře na straně klienta v komponentě Signup. (\*) Mějte na paměti úkol číslo 9. Pravidla: - Pole Uživatelské jméno, Email, Heslo a Opakovat heslo by měla mít alespoň 6 znaků; - Heslo by mělo odpovídat Opakovat heslo; - Validace by měla být provedena po kliknutí na tlačítko "SignUp"; - Pole s neplatnými hodnotami by měla být označena (props error a helperText); 6. Odpověď API může obsahovat chybu, která by měla být zobrazena uživateli poblíž příslušného pole. 7. Ujistěte se, že komponenta UserName zobrazuje nové uživatelské jméno po úspěšném odeslání. 8. Implementujte nový komponent SignupSuccess. Měl by být zobrazen místo registračního formuláře. 9. Implementujte serverovou validaci pro příslušná pole. --- 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( `Uživatelské jméno "${userName}" je již obsazené. Zkuste jiné.` ) ); } }, 500); }); }, }; export default api; ```
Jaká vylepšení by mohla být provedena ke zvýšení kvality produktu v budoucnu?
Zmínil jste Docker, CI/CD, GitHub Actions, GitLab — můžete objasnit, co přesně jste dělal, jaké pipeline, co bylo v kontejnerech?
Úkol: implementovat přihlašovací formulář v Reactu. Požadavky: - dvě pole: email + heslo - řízené vstupy - odeslání formuláře s preventDefault - základní validace (pole nesmí být prázdné) - při odeslání provést asynchronní požadavek (lze simulovat pomocí setTimeout) - zobrazit stav načítání (tlačítko zakázáno) - zobrazit chybu při neúspěšném přihlášení Volitelné (nepovinné): - validace emailu
Byly situace, kdy úkol již byl začleněn do develop, ale nem měl být zařazen do aktuální verze? Jak jste v takové situaci postupovali?
Jaká je vaše úroveň angličtiny pro práci v mezinárodním týmu?