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
Aggiungere interattività lato server in Blazor 8
Routing statico e PreRendering in una Blazor Web App
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Come migrare da una form non tipizzata a una form tipizzata in Angular
Creare una libreria CSS universale: i bottoni
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Utilizzare i primary constructor in C#
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Utilizzare i primary constructor di C# per inizializzare le proprietà
Gestire i dati con Azure Cosmos DB Data Explorer
Effettuare il binding di date in Blazor