Negli script precedenti abbiamo parlato dell'importanza dell'ottimizzazione del codice JavaScript con l'utilizzo delle ultime novità introdotte. Con questo ultimo script parleremo di altre quattro aree in cui è possibile riscrivere il codice per ottenere prestazioni e leggibilità.
Sostituzione blocchi Switch Case
Gli switch che emettono un solo valore a seguito di una determinata condizione su una variabile, possono essere riscritti utilizzando l'operatore Map e con l'aiuto del nullish coalescing
switch (n) { case 1: return 'Hello'; case 2: return 'World'; ... default: return 'No Hello'; }
var map = new Map([ [1, 'Hello']. [2, 'World']], ... ); map.get(n) ?? 'No Hello';
Decostruzione oggetti con Alias
Molto spesso non abbiamo bisogno di tutte le proprietà degli oggetti restituiti da funzioni, ma solo di due o tre. Per fare un esempio, in un oggetto di tipo Persona restituito da una funzione potremmo aver bisogno solo del nome e dell'indirizzo. Possiamo recuperare queste informazioni usando il seguente codice.
var p = getPersona(); var n = p.name; var a = p.location.address;
Tuttavia, esiste un metodo migliore.
var p = getPersona(); var { name:n, location:{address:a}} = p;
Miglioramenti ciclo for
Il classico for loop, che troviamo su tutte le guide introduttive viene spesso usato nel seuente modo.
for (let i = 0; i < fruits.length; i++){ console.log(fruits<i>); }
Possiamo ora rivederlo in questa versione più concisa.
for (let fruit of fruits) console.log(fruit); // con 'in' itero utilizzando l'index come l for originario for (let index in fruits) console.log(fruits[index]);
Possiamo ovviamente anche eseguirne la decostruzione.
for (let [index, fruit] of fruits.entries()) { console.log(`At index ${index}: ${fruit}`); }
Nel caso in cui venga fornito un oggetto al posto di un array, si potrà iterare sulle chiavi dello stesso.
var p = { firstName: 'Morgan', lastName: 'Pizzini', }; for (let key in p) console.log(key) ; // 'firstName' 'lastName'
Operatori Spread e Rest
Il caso più comune di utilizzo dell'operazione rest è nel momento della clonazione. In questo caso passiamo dall'eseguire una riduzione (slice) di 0 elementi all'utilizzo del rest.
var a = [1, 2, 3, 4]; var a2 = arr.slice(); /// var a2 = [...arr];
Una seconda casistica è la concatenazione.
var n = [1, 2, 3]; var n2 = [4, 5, 6].concat(n); /// var n2 = [4 ,5 , 6, ...n];
Un vantaggio di questa operazione è la possibilità di eseguire la concatenazione in un punto specifico dell'array, o addirittura unire le proprietà di due oggetti.
var n2 = [4 ,5, ...n, 6]; /// var a ={ lastName:"Pizzini" } var b ={ firstName:"Morgan" ...a } /// b ha proprietà 'lastName' e 'firstName'
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Azure Cosmos DB con i vettori
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Utilizzare QuickGrid di Blazor con Entity Framework
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Creare una libreria CSS universale: Nav menu
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Utilizzare i variable font nel CSS
Utilizzare Container Queries nominali
Il nuovo controllo Range di Blazor 9
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Generare la software bill of material (SBOM) in GitHub
Implementare l'infinite scroll con QuickGrid in Blazor Server