Negli ultimi anni si è visto un enorme incremento di framework JavaScript. Tra aggiornamenti e nuove uscite si può dire che si è perso il conto e anche la capacità decisionale su quale sia il migliore per il proprio progetto. Per queste ragioni, in alcuni casi, si preferisce proseguire con la classica pagina web che fa le proprie magie utilizzando vanilla JavaScript.
Il problema sorge nel momento in cui il nostro codice risulta eccessivamente lento o difficile da leggere. A quel punto lo sviluppatore si trova davanti a un muro che sembra invalicabile.
Un prima ottimizzazione potrebbe arrivare dal corretto utilizzo della sintassi JavaScript che, nel corso degli anni, ha ricevuto numerosi aggiornamenti che vanno a migliorare il codice al momento della compilazione JIT (Just In Time) e di conseguenza all'esecuzione.
Optional Chaining
Quando vogliamo utilizzare una proprietà nested, quindi un valore contenuto in un oggetto a sua volta facente parte di un altro oggetto, è buona norma verificare l'esistenza di ogni singolo livello.
if(pippo && pippo.pluto && pippo.pluto.paperino){
console.log(pippo.pluto.paperino);
}
Il codice può essere migliorato nel seguente modo.
if(pippo?.pluto?.paperino){
console.log(pippo.pluto.paperino);
}
Null Checks
Come per l'esempio procedente, ogni tipo di controllo su un oggetto nullo può essere semplificato.
if(pippo !== undefined && pippo !== '' && pippo !== null){
console.log(pippo);
}
if(!!pippo){
console.log(pippo);
}
Valore di default su variabile null
Per ovviare ai problemi presentati sopra andiamo a scrivere il codice che imposti dei valori di default, così da essere sicuri.
if(pippo === null){
pippo = "Ciao Mondo!";
}
Ma anche questa fase può essere ottimizzata:
pippo ??= "Ciao Mondo";
Valore di default nelle chiamate ai metodi
Lo stesso controllo sulle assegnazioni nulle, potrebbe avvenire a seguito della chiamata a un metodo.
function print(word1, word2){
if(word1 === null && word2 === null){
return;
}
console.log(`${word1} ${word2}`)
}
function print(word1 = "Hello", word2 = "World"){
console.log(`${word1} ${word2}`)
}
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare noopener e noreferrer nei link HTML
Ricerca delle GitHub issue tramite operatori logici
Implementare il throttle in JavaScript
Personalizzare le pagine di errore su Azure App Service
Monitorare le tabelle di Azure SQL Database con Change Event Streaming
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Creare comandi nella dashboard .NET Aspire
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Evitare memory leaks nelle closure JavaScript
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Definire il metodo di rilascio in .NET Aspire
Come automatizzare il download dei report di billing da GitHub Enterprise
I più letti di oggi
- Costruire servizi basati su XML: SOAP
- Usare le transazioni in applicazioni ASP 1/2
- Security in ASP.NET MVC 5 con ASP.NET Identity 2
- Le novità di ASP.NET 4.0: dall'estendibilità ad ASP.NET AJAX e MVC 2
- Un primo sguardo a Microsoft Velocity
- Gli application pool di IIS 6
- Global Azure 2026 - ASPItalia.com - Milano
- Introduzione al framework Javascript jQuery con esempi pratici di utilizzo
- Future Dev Day - Milano
- Microsoft Visual Studio Code: un nuovo editor gratuito per Windows, MacOSX e Linux per sviluppatori ASP.NET e Node.js




