Frontend
Räägi mulle async ja defer atribuutidest skriptide lisamisel: milline on nende erinevus, millal nad blokeerivad HTML analüüsi?
Rakenduses (React+Redux müügidiagramm) kasutajad teatavad, et see ei tööta ootuspäraselt. Leidke probleemid ja parandage need. Rakendus sisaldab: toodete nimekirja, mis on sorteeritud müügi järgi, müügi visualiseerimist bar chart (ECharts) kujul, vormi uute toodete lisamiseks. Peamine kaebus: väidetavalt lisatakse toode vormi kaudu, kuid see ei ilmu nimekirjas.
Kas teil on kunagi olnud kogemust töötada ilma analüütikuta, kui pidite ülesannet ise mõistma?
Kuidas sa tead küsimuse numbrit, et avada küsimuse ekraan?
Mis juhtub, kui HTML jõuab brauserisse? Mis on blokeerivad üksused ja kuidas nendega töötada?
// Antud on kolm tüüpi. Nende põhjal tuleb luua tüüp Delivery, mis sisaldab kõiki antud tüüpide välju.
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);
Kas teadsite non-null assertion (!) operaatorist TypeScriptis? Miks seda peetakse anti-mustriks?
Räägi CORS-ist.
Kas teate, kuidas Zustand töötab kapoti all?
Kas OPTIONS-päring saadetakse igal juhul ristkõnepäringus või ainult siis, kui see on vajalik? Mis vahe on lihtsatel ja keerukatel päringutel selles kontekstis?
Kuidas teisendada arguments massiiviks vanamoodi (ES5), ilma Array.from ja spread-operaatorita?
Kas kasutas kokkulepet commitide kirjutamiseks?
Kas sul on kogemusi Next.js-iga? Räägi mulle oma kogemusest.
Tootmises ajal tekkis viga, mida tuleb kiiresti parandada, kuid dev haru on juba kaugel uute funktsioonidega. Kuidas te käituksite?
Kas kunagi pidanud koostööd tegema projektijuhi või projektijuhiga range aegade tingimustes? Kui midagi tuleb teha väga kiiresti, kuid tehniliselt see ei ole võimalik kiiresti teha.
Kas on vajalik eraldi toggleLoading funktsioon või saab sellest ilma hakkama?
Kujutage ette makrotööde järjekorda, kus on viis `setTimeout`, ning mikroülesanded lõputult lisavad uusi mikroülesandeid, näiteks rekursiivse `Promise.resolve().then()` kaudu. Mis juhtub liidesega ja kas need viis timeouti kunagi täidetakse? Miks?
#React registreerimisvorm 1. Selgitage, kuidas töötab StateProvider, jagage oma mõtteid intervjueerijaga. 2. Vaadake /src/api/mock, selgitage, kuidas see töötab. 3. Kontrollige SubmitButtoni värvi ja parandage see. 4. Rakendage klientpoolsed vormi valideerimine Signup komponendis. (\*) Pidage meeles ülesande number 9. Reeglid: - Kasutajanimi, E-post, Parool ja Korda Parool väljad peaksid olema vähemalt 6 tähemärki; - Parool peaks vastama Korda Paroolile; - Valideerimine peaks toimuma "SignUp" nupule klõpsamisel; - Väljad, mille väärtused on kehtetud, tuleks märkida (props error ja helperText); 6. API vastus võib sisaldada viga, mida tuleks kasutajale näidata vastava välja lähedal. 7. Veenduge, et UserName komponent kuvab uue kasutajanime pärast edukat saatmist. 8. Rakendage uus SignupSuccess komponent. See peaks olema näidatud reegistratsioonivormi asemel. 9. Rakendage serveripoolne valideerimine sobivatele väljadele. --- Kood mock.ts-st: ```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( `Kasutajanimi "${userName}" on juba võetud. Palun proovige teist.` ) ); } }, 500); }); }, }; export default api; ```
Milliseid parandusi võiks tulevikus teha toote kvaliteedi parandamiseks?