ES2019 introduce la possibilità di effettuare operazioni utilizzando il Nullish coalescing, consentendo di estrarre un dato da un oggetto controllando prima che non sia nullo.
Questa sintassi permette di facilitare la scrittura di codice e al tempo stesso aumentarne la leggibilità.
// se la persona è null l'operazione fallisce // se eta = 0 restituisce 1 var t = persona.eta || 1; // controllo l'esistenza dell'oggetto prima dell'assegnazione var t = ""; if(persona){ var t = persona.eta || 1; } // Nullish coalescing var t = persona?.eta ?? 1
Il Nullish coalescing risulta utile quando l'operazione è diretta verso un unico parametro, ma nel caso di più parametri o oggetti è consigliato l'utilizzo della decostruzione
const getNumber = (ogg) => ogg?.num ?? 1; const getNumber1 = ({ num = 15 } = {}) => num; var t = getNumber({num: 10}) // t = 10 var t1 = getNumber1({}) // t = 15
Il vantaggio nella seconda versione (getNumber1) è l'innegabile elasticità che può assumere la funzione: possiamo aggiungere più parametri opzionali ed interagire con essi mantenendo un'ottima pulizia e lettura.
const getNumber = (ogg) => { var n = ogg?.num ?? 1 var n1 = ogg?.num1 ?? 2 return n*n1; }; const getNumber1 = ({ num = 15, num1 = 10} = {}) => num*num1;
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Limitare le richieste lato server con l'interactive routing di Blazor 8
Evitare il flickering dei componenti nel prerender di Blazor 8
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Disabilitare automaticamente un workflow di GitHub
Criptare la comunicazione con mTLS in Azure Container Apps
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Usare un KeyedService di default in ASP.NET Core 8
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Paginare i risultati con QuickGrid in Blazor