Molto spesso capita di dover impostare il valore di una variabile in base al fatto che un'altra sia null o meno. Ad esempio, dobbiamo impostare una stringa di default da visualizzare se l'indirizzo di una persona non è specificato. In questi casi il codice da scrivere è molto semplice.
const address = person.address || "nessun indirizzo";
Questo piccolo esempio è perfettamente funzionante, ma presenta il problema di validare la truthiness di JavaScript e non l'esistenza o meno dell'indirizzo. Se vogliamo lavorare sull'esistenza dell'indirizzo, dovremmo confrontarlo con null o undefined scrivendo quindi un codice del genere.
const address = person.address == null || person.address == undefined ? "nessun indirizzo" : person.address;
Questo esempio è più verboso rispetto al precedente, ma è semanticamente più corretto. Per rendere questo codice più compatto, possiamo ricorrere al Null Coalescing Operator "??".
const address = person.address ?? "nessun indirizzo";
L'operatore ?? valuta l'espressione di sinistra e se questa è null o undefined restituisce il valore di destra.
Questo operatore torna particolarmente utile quando combinato con l'optional chaining operator visto nello script #295.
const address = data?.address?.city?.id ?? "nessun indirizzo"
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Inizializzazione asincrona di un servizio allo startup di un'applicazione Blazor
Connettersi ad ASP.NET Core SignalR da Blazor WebAssembly
Il futuro delle applicazioni Windows con .NET 5
Accedere da un App Service ad Azure SQL Database tramite AAD
Pubblicare un'applicazione come singolo eseguibile con .NET Core 3
Modificare il layout della paginazione del controllo CarouselView in Xamarin Forms
Creare due extension method per serializzare un oggetto in JSON e viceversa utilizzando la libreria System.Text.Json
A quick tour around Azure Dev Spaces
Utilizzare la deconstruction in combinazione con l'operatore rest di Javascript
Azure Kubernetes Service con .NET 5
Persistere una proprietà complessa di una classe come JSON in una colonna di una tabella con Entity Framework Core
Disabilitare Ivy in applicazioni Angular 9
I più letti di oggi
- Creare un web server locale con LiveReload
- Operatori di confronto in JavaScript: == e ===
- Microsoft WebCamp - Roma, Milano
- Dev Night #2: Serverless - Milano
- Disponibile la release finale di Moonlight 1.0
- Lancio ufficiale di Moonlight 1.0
- Disponibile il Silverlight Toolkit March 2009 Release
- MonoTouch in versione 1.0: C# per iPhone diventa realtà