Tapşırıqları hansı formatda alırsan? Hərtərəfli müstəqil olma səviyyən nədir?
Frontend
Hansı əsas HTML etiketlərini bilirsiniz?
Özünüz və ən maraqlı təcrübəniz haqqında bir az danışın.
Özünüz və iş təcrübəniz haqqında danışın.
fn və delay parametrləri ilə debounce funksiyasını həyata keçirin, bu funksiya göstərilən sükut vaxtı bitənə qədər çağırışı təxirə salır.
Observer / Event Emitter nümunəsinə uyğun olaraq sinfi həyata keçirin: abunəçilərin saxlanması, hadisəyə abunə olmaq, hadisədən çıxmaq, abunəçilərə bildiriş göndərmək.
Testlərdən bəhs etdiniz — [şirkət] və son iş yerinizdə testlər yazdınızmı?
EventEmitter sinifini həyata keçirin: event və handler üçün subscribe(event, handler) metodu və bütün abunəçiləri çağırmaq üçün emit(event, data) metodunu. Həmçinin, unsubscribe metodunu da həyata keçirin.
Yeni yığın və Legacy kodun eyni layihədə birlikdə mövcudiyyət məsələsini necə həll etdiniz? Mikro-frontendlər və ya veb komponentləri haqqında düşündünüzmü?
Vue 2-dən Vue 3-ə keçiddə iştirak təcrübəniz varmı — dəqiq nə etdiniz?
Debounce funksiyasını həyata keçirin.
Virtual sürüşü həyata keçirmək: uzun mesajlar siyahısı var (10,000 element), yalnız görünən elementləri 300px hündürlüyündəki konteyner daxilində, 30px sətir hündürlüyü ilə render etmək lazımdır.
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: handler'ı sil } function emit(event, payload) { // TODO: bütün abuneleri çağır } 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);
Tapşırıqları hansı formatda alırsan? Yüksək dərəcədə müstəqil misin?
Tətbiqi tapşırıq: iki obyekt massivləri ilə işləmək — açar üzrə müqayisə və Map strukturlarından istifadə edərək iki dövr ilə keçid
Test yazma təcrübəniz varmı? Hansı testləri yazmısınız və hansı həcmdə?
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) => { // kodu buraya yazın return fn(...args); }; // ve buraya return wrapped; }
Niyə hazır UI elementlərindən istifadə etmək yerinə, xüsusi UI-kitin lazım olduğuna qərar verdiniz?
Virtual Siyahı (Virtual List) tətbiq edin: uzun mesajlar siyahısı var və yalnız 300 piksel hündürlüyündə sabit konteyner daxilində görünən elementləri render etmək lazımdır. Bir sətirin hündürlüyü 30 pikseldir.
Əlaqədar iş təcrübənizdən danışın.