Міндеттер қандай форматта келеді? Сізде қандай тәуелсіздік бар?
Frontend
Сіз білетін негізгі HTML тегтері қандай?
Өзіңіз туралы және ең қызықты тәжірибеңіз туралы аздап айтыңыз.
Өзіңіз туралы және жұмыс тәжірибеңіз туралы айтыңыз.
debounce(fn, delay) функциясын жүзеге асырыңыз, ол функция шақыруын белгіленген тыныштық уақытынан кейін кешіктіреді.
Қадағалаушы / Оқиға жіберуші үлгісін пайдалана отырып, сыныпты жүзеге асырыңыз: жазылушыларды сақтау, оқиғаға жазылу, оқиғадан шығу, жазылушыларға хабарлау.
Сіз тесттер туралы айттыңыз — [компанияда] және соңғы жұмыс орныңызда тесттер жаздыңыз ба?
EventEmitter класын жүзеге асырыңыз: оқиғаға жазылу үшін subscribe(event, handler) әдісі, барлық жазылушыларды шақыру үшін emit(event, data) әдісі және unsubscribe әдісі.
Жаңа стек пен ескі кодтың бір жобада бірге болуы мәселесін қалай шештіңіз? Микро-фронтендтер немесе веб-компоненттерді қарастырдыңыз ба?
Vue 2-ден Vue 3-ке көшіру процесіне қатысқан тәжірибеңіз бар ма — нақты не істедіңіз?
Debounce функциясын жүзеге асырыңыз.
Виртуалды скроллды жүзеге асырыңыз: ұзын хабарламалар тізімі бар (10 000 элемент), тек көрінетін элементтерді ғана 300px биіктігі бар контейнер ішінде көрсету керек, бір жолдың биіктігі — 30px.
функция 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: удалить handler } function emit(event, payload) { // TODO: вызвать всех подписчиков event } 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);
Сенің тапсырмаларың қандай форматта келеді? Сенде жоғары деңгейде тәуелсіздік бар ма?
Практикалық тапсырма: екі массив объектілермен жұмыс — кілт бойынша салыстыру және екі циклмен өту.
Сізде тесттер жазу тәжірибесі бар ма? Қандай тесттер жаздыңыз және қандай көлемде?
Виртуалды тізімді жүзеге асырыңыз: ұзын хабарламалар тізімі бар, тек көрінетін элементтерді 300 пиксельдік тұрақты биіктігі бар контейнер ішінде көрсету керек. Бір жолдың биіктігі — 30 пиксель.
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) => { // кодты осында жазыңыз return fn(...args); }; // және мұнда return wrapped; }
Неліктен дайын UI элементтерін қолданбай, жеке UI жинағын жасау керек деп шештіңіз?
Өзінің сәйкес жұмыс тәжірибесі туралы айтыңыз.