Frontend
Vertel kort iets over jezelf, wat je doet, waar je vandaan komt, waarom je hier bent en alles wat je belangrijk vindt.
Wat is het verschil tussen useMemo en useCallback?
Vertel me iets over jezelf en over de meest interessante technische taak die je hebt opgelost.
Hoe heb je samengewerkt met de backend en andere teamleden (analisten, ontwerpers, testers)?
Vertel me alsjeblieft over promises in JavaScript: wat ze zijn, waar ze voor dienen, methoden.
Welke ontwikkelpatronen gebruikt u (DRY, SOLID, GRASP, ontwerppatronen)?
Wat is een afhankelijkheidsarray in useEffect? Wat gebeurt er als je een lege array doorgeeft of deze helemaal niet doorgeeft?
Welke HTTP-codes worden gebruikt bij het werken met de REST API?
Wat deden jullie toen de gebruiker internet verloor?
Hoe organiseer je gegevensuitwisseling tussen twee niet-verbonden componenten?
Hoe intensief heb je met Next.js gewerkt? Welke functies gebruik je?
Waarom hebben jullie besloten over te stappen op een nieuwe stack/activiteit? Wat was de reden, als je 10 jaar in het bedrijf hebt gewerkt?
Hoe implementeer je zoeken op basis van valueChanges van het invoerveld met een verzoek naar de backend: welke RxJS-operatoren gebruiken en waarom?
Waarvoor dient een state manager? Hoe verschilt het van React Context?
Wat is de Temporal Dead Zone (TDZ)? Waarom ontstaat het en hoe ermee om te gaan?
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; const someFunc = (arr) => { return [...arr].sort((a, b) => a - b); }; const LazyInit = (props) => { const [arr, setArr] = useState(() => someFunc(props.arr)); const onClick = () => { setArr((prev) => prev.concat(prev.length + 1)) } return ( <> <button onClick={onClick}> Incrementeren </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ) } export default () => <LazyInit arr={[1, 2, 3]} />; --- De rechterkant bespreekt: - Gebruik van TypeScript met generics: "<T extends object, K extends keyof T>" - Controleren of data een string is met een type guard: "isString(data: unknown): data is string { ... }" - Gebruik van useState met een functie om herhaald uitvoeren bij elke rendering te voorkomen: ``` const [state, setState] = useState(getComplexData); // of const [state, setState] = useState(() => getComplexData()); ``` - De functie die aan useState wordt doorgegeven, wordt slechts eenmaal uitgevoerd bij het monteren van het component. - Waarschuwing over het direct muteren van de staat op regel 11 met prev.concat. --- De technische taak is om het React-componentcode te analyseren en mogelijk te corrigeren of te optimaliseren, met speciale aandacht voor: - Juiste lazy initialisatie van de staat met useState. - Vermijden van directe mutatie van de staat. - Begrip van TypeScript-generics en type guards. - Zorgen dat het component de staat correct bijwerkt bij het klikken op de knop.
Vertel me over je favoriete functie waar je trots op bent
Waarop is jouw interne lijn gebaseerd, die je legt en zegt: deze micro-frontend is eenvoudig, en deze is complex?
Hoe was je geregistreerd — als eenmanszaak, op contractbasis?
Implementeer een decorateur callLimit(fn, limit, callback), die het aantal aanroepen van een functie beperkt. Neemt: een functie om te decoreren, het maximale aantal aanroepen, een callback die wordt aangeroepen bij de laatste aanroep (optioneel). De geretourneerde functie moet een reset-methode hebben om de teller terug te zetten naar de beginstand.