In welk formaat ontvang je de taken? Hoeveel zelfstandigheid heb je?
Frontend
Welke belangrijke HTML-tags ken je?
Vertel me iets over jezelf en je meest interessante ervaring.
Vertel eens iets over jezelf en je werkervaring.
Implementeer de functie debounce(fn, delay), die het aanroepen van de functie uitstelt tot de opgegeven stilteperiode is verstreken.
Implementeer een klasse volgens het Observer-patroon (Event Emitter): opslag van abonnees, abonneren op een gebeurtenis, afmelden voor een gebeurtenis, abonnees informeren.
Je hebt tests genoemd — heb je tests geschreven bij [bedrijf] en op je laatste baan?
Implementeer de klasse EventEmitter: de methode subscribe(event, handler) voor het abonneren op een gebeurtenis en de methode emit(event, data) om alle abonnees aan te roepen. Implementeer ook de methode unsubscribe.
Hoe hebt u het probleem van het gelijktijdig bestaan van een nieuwe stack en legacy-code in een project opgelost? Heeft u micro-frontend of webcomponenten overwogen?
Heb je ervaring met het migreren van Vue 2 naar Vue 3 — wat heb je precies zelf gedaan?
Implementeer de debounce-functie.
Implementeer virtueel scrollen: er is een lange lijst met berichten (10.000 items), alleen de zichtbare elementen binnen een container met een vaste hoogte van 300px moeten worden gerenderd, met een regelhoogte van 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: handler verwijderen } function emit(event, payload) { // TODO: roep alle abonnees van het event aan } 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);
In welk formaat ontvang je taken? Heb je een hoge mate van zelfstandigheid?
Praktische taak: werken met twee arrays van objecten — vergelijking op sleutel met behulp van Map-structuren en doorlopen met twee lussen
Heb je ervaring met het schrijven van tests? Welke tests heb je geschreven en in welke omvang?
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) => { // schrijf hier de code return fn(...args); }; // en hier return wrapped; }
Waarom zijn jullie tot de conclusie gekomen dat een aangepaste UI-kit nodig is, in plaats van gewoon elementen van een kant-en-klare UI te gebruiken?
Implementeer een virtuele lijst (Virtual List): er is een lange lijst met berichten, en alleen de zichtbare elementen binnen een container met een vaste hoogte van 300 pixels moeten worden gerenderd. De hoogte van één regel is 30 pixels.
Vertel me over je relevante werkervaring.