Frontend
Postoje drvo sa interfejsom INode (value: number, left?: INode, right?: INode). Napišite funkciju koja prolazi kroz drvo i vraća zbir svih vrednosti.
Kako tačno tipizirati listu sa paginacijom? Kako koristiti presecanje tipova za različite opcije odgovora?
Да ли користите неке конфигурације у апликацији? Linters, стилови кода — делите ли их између пројеката (на пример, преко приватног npm)?
Са којим тешким случајевима сте се суочили на последњем радном месту (RTK)?
Navedite poznate principe razvoja softvera.
Imamo veoma veliki frontend u monorepo-u, na kojem istovremeno radi mnogo različitih timova. Ne možemo preći na mikro-frontend. Kako minimizirati rizik da različiti timovi utiču jedni na druge?
Kako u HTML-u implementirati povezivanje različitih formata i veličina slika za ekrane s različitom gustinom piksela? Šta je tag picture i atribut srcset?
Могу ли HTTP методи да се користе ван њихове директне намјене, на пример GET за брисање или ажурирање података?
Zadatak u JavaScript-u: odrediti tip (typeof) za različite izraze — new Array(), objekat, Map, broj, Infinity, rezultat konkatenacije stringova i brojeva.
Šta su composables i čemu služe?
Zašto React treba virtualno DOM stablo? Zašto ne možemo direktno menjati pravi DOM? Koje su prednosti i mane različitih pristupa?
Ako se nova makrotask kreira tokom izvršavanja petlje Event Loop, kako i kada će biti obrađena?
Koje su metode za sprečavanje curenja memorije u JavaScript aplikacijama?
Šta uraditi ako Redis postane prepun tokom velikog opterećenja?
Objasnite kako Promise.all čeka da se svi zahtevi u vašem rekurzivnom rešenju završe. Zašto trenutna implementacija može vratiti nepotpun rezultat?
Kako React upoređuje dve stabla (trenutno i u procesu)? Koji algoritam se koristi?
Kako sprečiti treptanje interfejsa zbog useEffect?
/** * Implementirajte funkciju koja će izvršiti povratni poziv s podacima * i vratiti niz odgovora Response[]. * Rješenje bi trebalo izvršiti sve zahtjeve paralelno * ali ne više od [limit] zahtjeva može se izvršiti istovremeno. * Cilj je minimizirati ukupno vrijeme izvršenja. */ 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[]> { // POČETAK RJEŠENJA OVDJE 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; // upravljanje greškom } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Šta je CORS greška?
Objasnite šta će se desiti sa Promise-om ako asyncCall greškom pozove prosleđeni callback više puta: prvo sa greškom, zatim sa podacima i na kraju ponovo sa greškom.