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
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Evitare la command injection in un workflow di GitHub
Creare moduli CSS in React
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Specificare il versioning nel path degli URL in ASP.NET Web API
Utilizzare il trigger SQL con le Azure Function
Generare token per autenicarsi sulle API di GitHub
Le novità di Angular: i miglioramenti alla CLI
Usare le variabili per personalizzare gli stili CSS
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
I più letti di oggi
- I nuovi metodi degli array di ECMAScript 5
- Evitare (o ridurre) il repo-jacking sulle GitHub Actions
- Un custom control BoundField con dropdownlist
- .NET Core 3, C#8 and beyond
- Utilizzare long polling in HTML5 per richieste in real time
- Utilizzare le shortcut da tastiera con KeyboardAccelerator nella Universal Windows Platform
- Microsoft Security Bulletin MS05-048