Frontend
Come visualizzeremo la cronologia dei messaggi se è molto grande? Come implementare la paginazione?
Quanto era importante rispettare i requisiti di sicurezza dell'applicazione? C'erano minacce comuni da cui bisognava proteggersi?
È corretto che un modulo, che l'utente nemmeno ha iniziato a modificare, abbia già generato un errore di convalida?
Qual è la differenza tra Promise.any e Promise.race?
Parla dei metodi Promise: Promise.all, Promise.allSettled, Promise.race, Promise.any — in cosa si differenziano tra loro?
Quali metodi di isolamento CSS conosci?
Cos'è il meccanismo di Dependency Injection in Angular e come lo hai applicato? A quali livelli e dove, oltre ai servizi, può essere utilizzato?
In quali scenari utilizzi useEffect e quando usi altri hook?
Come valuti la tua esperienza con Spring Boot? Quanto approfonditamente hai dovuto capire come funziona sotto il cofano?
Perché l'uso di splice può causare problemi di reattività in Vue 2, e come viene risolto in Vue 3?
Perché hai scelto TanStack Query invece di RTK Query?
Quale HTML arriverà da Next.js prima dell'idratazione?
Quali sono i vantaggi e gli svantaggi di TypeScript rispetto a JavaScript?
In cosa si differenziano i cookie da localStorage? Qual è la dimensione massima di cookie e localStorage? In cosa si differisce il tempo di vita?
Cos'è useId e a cosa serve?
Parla dei tipi in JavaScript: quali sono, in quali due grandi sottogruppi si dividono e come possiamo confrontarli tra loro?
Cosa fare per evitare che, con il valore predefinito roles = [], l'array venga ricreato ad ogni rendering?
Perché una funzione in JavaScript è considerata un oggetto, anche se typeof restituisce "function"?
Perché l'uso di setTimeout(fn, 0) aiuta a non bloccare l'UI, mentre creare un gran numero di promesse (microtask) no? Qual è la differenza tra macro-task e micro-task nell'Event Loop?
/** * La funzione 'asyncAuth(callback)' accetta un callback, nel quale * può essere passata un errore (come primo argomento) e dati * dal backend (come secondo argomento). * asyncAuth((error, data) => {}); * * Devi implementare la funzione 'auth()', * che chiama 'asyncAuth()', ma restituisce una Promise. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * La funzione 'tryAuth()' utilizza 'auth()' e, in caso di errore, * effettua N tentativi aggiuntivi. * Se tutti falliscono, restituisce l'ultimo errore. * * @returns {Promise} */ function tryAuth(n) { return new Promise((resolve, reject) => { function attempt(attemptsLeft) { auth().then(resolve).catch((error) => { if (attemptsLeft <= 0) { reject(error); } else { attempt(attemptsLeft - 1); } }); } attempt(n); }); }