Frontend
Cum se tipizează exact o listă cu paginare? Cum se folosește intersectia tipurilor pentru diferite variante de răspuns?
Folosești anumite configurații în aplicație? Linters, stiluri de cod — le împărți între proiecte (de exemplu, printr-un npm privat)?
Cu ce cazuri dificile te-ai confruntat la ultimul loc de muncă (RTK)?
Enumera principiile de dezvoltare software pe care le cunoști.
Avem un front foarte mare în monorepo, pe care lucrează mai multe echipe diferite în același timp. Nu putem trece la micro-frontend-uri. Cum putem minimiza riscurile ca echipele diferite să afecteze munca unele altora?
Cum se implementează în HTML conectarea diferitelor formate și dimensiuni ale imaginilor pentru ecrane cu densități diferite de pixeli? Ce este tag-ul picture și atributul srcset?
Este posibil să folosiți metodele HTTP în afara scopului lor inițial, de exemplu GET pentru ștergerea sau actualizarea datelor?
Exercițiu JavaScript: determină tipul (typeof) pentru diferite expresii — new Array(), obiect, Map, număr, Infinity, rezultatul concatenării de șiruri și numere.
Ce sunt composables și la ce servesc?
De ce are React nevoie de un arbore DOM virtual? De ce nu se poate modifica direct DOM-ul real? Care sunt avantajele și dezavantajele diferitelor abordări?
Dacă o nouă macrotask este creată în timpul execuției ciclului Event Loop, cum și când va fi procesată?
Care sunt modalitățile de prevenire a scurgerilor de memorie în aplicațiile JavaScript?
Ce să faci dacă Redis se umple sub o încărcare mare?
Explicați cum Promise.all așteaptă finalizarea tuturor cererilor în soluția ta cu recursie. De ce implementarea actuală poate returna un rezultat incomplet?
Cum compară React două copaci (curent și în curs de dezvoltare)? Ce algoritm este utilizat?
Cum să previi clipirea interfeței cauzată de useEffect?
/** * Implementați funcția care va executa un callback cu datele * și va returna un array de răspunsuri Response[]. * Soluția trebuie să execute toate cererile în paralel * dar nu mai mult de [limit] cereri pot fi executate simultan. * Scopul este de a minimiza timpul total de execuție. */ type Props<RequestData, Response> = { callback: (args: RequestData) => Promise<Response>; data: Array<RequestData>; limit: number; }; export async function runWithLimit<RequestData, Response>({ callback, data, limit, }: Props<RequestData, Response>): Promise<Response[]> { // ÎNCEPUTUL SOLUȚIEI AICI if (limit < 1 || data.length === 0) { return Promise.resolve([]); } if (limit >= data.length) { return Promise.all(data.map(callback)); } const result: Response[] = new Array(data.length); let index = 0; const run = async () => { if (index >= data.length) return; const elem = data[index]; try { result[index] = await callback(elem); } catch (err) { result[index] = (err) as Response; // gestionare eroare } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Ce este o eroare CORS?
Explică ce se întâmplă cu învelișul Promise dacă asyncCall din greșeală apelează callback-ul transmis de mai multe ori: mai întâi cu o eroare, apoi cu date și apoi din nou cu o eroare.
În ce format veneau răspunsurile de la backend și cum le procesați (despre sistemul de testare psihologică cu întrebări dinamice)?