Sobes.tech

Frontend

În ce format îți sosesc sarcinile? Cât de independent ești?

Middle
207

Ce etichete HTML principale cunoști?

Middle+
181

Spune-mi puțin despre tine și experiența ta cea mai interesantă.

Middle
180

Spune-mi despre tine și experiența ta de muncă.

Middle
163

Implementați funcția debounce(fn, delay), care întârzie apelarea funcției până când timpul de tăcere specificat expiră.

Middle
163

Implementați o clasă conform pattern-ului Observer (Emitter de evenimente): stocarea abonaților, abonarea la evenimente, dezabonarea de la evenimente, notificarea abonaților.

Middle
162

Ai menționat testele — ai scris teste la [companie] și la ultimul loc de muncă?

Middle
157

Implementați clasa EventEmitter: metoda subscribe(event, handler) pentru abonarea la eveniment și metoda emit(event, data) pentru apelarea tuturor abonaților. De asemenea, implementați metoda unsubscribe.

Middle
154

Cum ați rezolvat problema coexistentei între un nou stack și codul legacy într-un proiect? Ați luat în considerare micro-frontend-uri sau componente web?

Middle
147

Ai experiență în participarea la migrația de la Vue 2 la Vue 3 — ce ai făcut exact tu însuți?

Middle
142

Implementați funcția debounce.

Middle
141

Implementați derularea virtuală: există o listă lungă de mesaje (10.000 de elemente), trebuie să redați doar elementele vizibile din interiorul unui container cu înălțimea fixă de 300px, cu o înălțime a liniei de 30px.

Middle
138

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: elimina handler } function emit(event, payload) { // TODO: apelează toți abonații evenimentului } 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);

Middle+
133

În ce format primești sarcinile? Ai un nivel ridicat de autonomie?

Middle
133

Sarcină practică: lucrul cu două array-uri de obiecte — compararea după cheie folosind structuri Map și parcurgerea cu două bucle

Middle
129

Ai experiență în scrierea testelor? Ce tipuri de teste ai scris și în ce volum?

Middle+
129

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) => { // scrie codul aici return fn(...args); }; // si aici return wrapped; }

Middle+
128

Implementați o listă virtuală (Virtual List): există o listă lungă de mesaje, și trebuie să redați doar elementele vizibile din interiorul unui container cu înălțimea fixă de 300 de pixeli. Înălțimea unui rând este de 30 de pixeli.

Middle
127

De ce ați ajuns la concluzia că este nevoie de un kit UI personalizat, și nu doar să folosiți elemente dintr-un UI gata făcut?

Middle
126

Vorbește despre experiența ta relevantă de muncă.

Middle+
119
/2