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
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Creare una libreria CSS universale: Cards
Triggerare una pipeline su un altro repository di Azure DevOps
Cambiare la chiave di partizionamento di Azure Cosmos DB
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Introduzione ai web component HTML
Implementare l'infinite scroll con QuickGrid in Blazor Server
Eseguire script pre e post esecuzione di un workflow di GitHub
Rendere le variabili read-only in una pipeline di Azure DevOps
La gestione della riconnessione al server di Blazor in .NET 9
Creare un webhook in Azure DevOps
Simulare Azure Cosmos DB in locale con Docker