Frontend
Esercizio pratico: implementare la logica di sblocco dei pulsanti dopo aver scrolled fino alla fine del contenitore (JavaScript).
Hai mai avuto un caso in cui hai usato intenzionalmente una chiave fuori dalla lista degli elementi?
Come funziona la cache delle risorse nel browser — come il browser decide se prenderle dalla cache o ricaricarle, e come gestire questa situazione? Quali sono i metodi di caching, incluso Service Worker?
C'è un bancomat con banconote di denominazioni specificate. L'utente sceglie la quantità di denaro che desidera ricevere. Il bancomat deve restituire la somma inserita dall'utente con il minor numero di banconote. Scrivi la funzione del bancomat. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]
Come interagisce il frontend con il backend?
Hai molta esperienza con classi e oggetti nel frontend?
Da dove prende il browser il valore predefinito di font-size per REM e dove è possibile ridefinirlo?
Come influisce l'uso di useMemo con un array di dipendenze vuoto nel componente ProductList sulla visualizzazione dei nuovi prodotti? Inoltre, nel componente AddProductForm, il pulsante assegna onClick a handleSubmit invece di usare onFinish sul modulo — come correggere correttamente questo?
Hai mai incontrato il concetto di unione discriminata?
Implementa la validazione lato server per i campi corrispondenti.
Refactorizza il componente che rende un numero casuale (da Promise) e la posizione dello scroll. Trova i problemi e correggili.
Quanti endpoint vengono normalmente usati in GraphQL?
Come implementeresti la cache lato client?
Avevi un'architettura basata sulle funzionalità? Conosci FSD (Design Segmentato per Funzionalità)?
Determina l'ordine di output sulla console per il codice che utilizza setTimeout e Promise (compito sull'Event Loop).
Hai detto che hai scritto i test usando una rete neurale. Se la rete neurale ha generato test che falliscono con qualsiasi modifica al codice della classe, questi test raggiungono il loro scopo? Sono utili?
Parlami più dettagliatamente della navigazione tramite tastiera che hai implementato.
È necessario scrivere un metodo per ottenere il valore tramite chiave di un oggetto con annidamento illimitato e firma get(path: string, data: Record<string, unknown>): unknown const data = { user: { profile: { name: 'Nome' } } } get('user.profile.name', data)
Quali interfacce hai sviluppato e di cosa consistevano: moduli, schermate analitiche o qualcos'altro?
/** * Scrivi la tipizzazione per la funzione getObjField * * @param obj - L'oggetto da cui estrarre il valore * @param key - La chiave del valore da estrarre * @returns Il valore corrispondente alla chiave nell'oggetto */ type Obj = { name: string; age: number; }; const getObjField = <K extends keyof Obj>(obj: Obj, key: K): Obj[K] => { return obj[key]; }; const user: Obj = { name: "Nik", age: 25 }; const value1 = getObjField(user, "name"); const value2 = getObjField(user, "age"); const value3 = getObjField(user, "test"); // Errore: Argument of type '"test"' is not assignable to parameter of type 'keyof Obj'.