Frontend
Yra medis su interfeisu INode (value: number, left?: INode, right?: INode). Parašykite funkciją, kuri eina per medį ir grąžina visų reikšmių sumą.
Kaip tiksliai tipizuoti sąrašą su puslapiavimu? Kaip naudoti tipų sankirtą skirtingoms atsakymo galimybėms?
Naudojate kokias nors konfigūracijas programoje? Linters, kodo stiliai — ar dalijatės jomis tarp projektų (pavyzdžiui, per privatų npm)?
Kokius sudėtingus atvejus susidūrėte savo paskutinėje darbo vietoje (RTK)?
Išvardinkite žinomus programinės įrangos kūrimo principus.
Turime labai didelį frontend monorepo, kuriame dirba daug skirtingų komandų vienu metu. Negalime pereiti prie mikro-frontendų. Kaip sumažinti riziką, kad skirtingos komandos paveiks vienos kitos darbą?
Kaip HTML įgyvendinti skirtingų formatų ir dydžių vaizdų prijungimą skirtingo tankio ekranams? Kas yra tag picture ir atributas srcset?
Ar galima naudoti HTTP metodus ne jų tiesioginiam tikslui, pavyzdžiui, GET duomenų ištrynimui ar atnaujinimui?
JavaScript užduotis: nustatyti tipą (typeof) įvairioms išraiškoms — new Array(), objektas, Map, skaičius, Infinity, rezultatų sujungimas su eilutėmis ir skaičiais.
Kas yra composables ir kam jie skirti?
Kodėl React reikalingas virtualus DOM medis? Kodėl negalima tiesiogiai keisti tikrojo DOM? Kokie yra skirtingų požiūrių privalumai ir trūkumai?
Jei nauja makro užduotis kuriama Event Loop ciklo metu, kaip ir kada ji bus apdorota?
Kaip išvengti atminties nutekėjimo JavaScript programose?
Ką daryti, jei Redis perpildys esant dideliam apkrovai?
Paaiškinkite, kaip Promise.all laukia, kol įvykdys visus užklausimus jūsų rekursijos sprendime. Kodėl dabartinė įgyvendinimo gali grąžinti nepilną rezultatą?
Kaip React lygina du medžius (dabartinį ir darbo metu)? Koks algoritmas naudojamas?
Kaip išvengti interfeiso mirgėjimo dėl useEffect?
/** * Įgyvendinkite funkciją, kuri vykdys atgalinį kvietimą su duomenimis * ir grąžins Response[] atsakymų masyvą. * Sprendimas turėtų vykdyti visus užklausimus lygiagrečiai * bet ne daugiau kaip [limit] užklausimų gali būti vykdomi vienu metu. * Tikslas yra sumažinti bendrą vykdymo laiką. */ 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[]> { // Sprendimo pradžia čia 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; // klaidos valdymas } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Kas yra CORS klaida?
Paaiškinkite, kas nutiks su Promise apvalkalu, jei asyncCall klaidingai iškvies perduotą callback kelis kartus: pirmiausia su klaida, tada su duomenimis ir vėl su klaida.