Kokiu formatu gaunate užduotis? Kiek esate savarankiškas?
Frontend
Kokius pagrindinius HTML žymenis žinote?
Papaskink man šiek tiek apie save ir apie savo įdomiausią patirtį.
Papaskinkite apie save ir savo darbo patirtį.
Įgyvendinkite funkciją debounce(fn, delay), kuri atideda funkcijos iškvietimą iki nurodyto tylos laiko pabaigos.
Įgyvendinkite klasę pagal Observer (Stebėtojas / Renginio siųstuvas) modelį: prenumeratorių saugojimas, įvykio prenumerata, prenumeratos atšaukimas, prenumeratorių įspėjimas.
Jūs paminėjote testus — ar rašėte testus [įmonėje] ir paskutiniame darbe?
Įgyvendinkite EventEmitter klasę: metodą subscribe(event, handler) prenumeratai ir emit(event, data) visų prenumeratorių iškvietimui. Taip pat įgyvendinkite unsubscribe metodą.
Kaip sprendėte naujo stako ir Legacy kodo bendro gyvenimo užduotį viename projekte? Ar svarstėte mikro-frontendus ar žiniatinklio komponentus?
Ar turi patirties migracijoje iš Vue 2 į Vue 3 — ką tiksliai pats padarei?
Įgyvendinkite debounce funkciją.
Virtualaus slinkimo įgyvendinimas: yra ilgas pranešimų sąrašas (10 000 elementų), reikia rodyti tik matomus elementus viduje konteinerio, kurio fiksuota aukštis yra 300px, su eilutės aukščiu 30px.
function createEmitter() { const events = new Map(); function on(event, handler) { if(!events.has(event)) { events.set(event, [handler]) return } events.get(event).push(handler) } function off(event, handler) { // TODO: pašalinkite handler } function emit(event, payload) { // TODO: iškvieskite visus įvykio prenumeratorius } return { on, off, emit }; } const bus = createEmitter(); const unsub1 = bus.on("order:created", (payload) => { console.log("handler1:", payload.id); }); const handler2 = (payload) => { console.log("handler2:", payload.id); } bus.on("order:created", handler2);
Kokiu formatu gaunate užduotis? Ar turite didelį savarankiškumo laipsnį?
Praktinė užduotis: dirbti su dviem objektų masyvais — palyginimas pagal raktą naudojant Map struktūras ir dviejų ciklų perėjimas
Ar turi patirties rašant testus? Kokius testus rašei ir kokiu kiekiu?
function memoize(fn, options = {}) { const { maxSize = 1000, keyOf = (...a) => JSON.stringify(a), lruTouch = true, } = options; let hits = 0; let misses = 0; const cache = new Map(); const getKey = (...args) => keyOf(...args); const wrapped = (...args) => { // čia rašykite kodą return fn(...args); }; // ir čia return wrapped; }
Kodėl nusprendėte, kad reikalingas individualus UI rinkinys, o ne tiesiog naudoti paruoštus UI elementus?
Įgyvendinkite virtualų sąrašą (Virtual List): yra ilgas pranešimų sąrašas, ir reikia atvaizduoti tik matomus elementus, esančius 300 pikselių aukščio fiksuotame konteineryje. Vieno eilutės aukštis yra 30 pikselių.
Papaskokite apie savo atitinkamą darbo patirtį.