Gli operatori di confronto sono usati per determinare a livello logico se due variabili o due tipi sono uguali.
In JavaScript abbiamo due diversi operatori per effettuare questa operazione:
- == (equality) determina se due espressioni hanno lo stesso valore, eventualmente applicando le opportune conversioni tra tipi per effettuare il confronto
- === (identity) determina se due espressioni hanno lo stesso valore ma senza effettuare conversioni (i due termini confrontati devono dunque essere dello stesso tipo)
- L'esempio seguente evidenzia a livello pratico la differenza di comportamento tra i due operatori:
var x = 3; alert(x==3); // true alert(x===3); // true alert(x=="3"); // true alert(x==="3"); // false
Molto spesso viene erroneamente usato il confronto di uguaglianza (==) anziché il più corretto ===.
La conversione tra tipi (cast) infatti, oltre ad avere un costo in termini di performance, a volte può generare risultati inattesi come negli esempi seguenti:
"" == "0"; // false 0 == ""; // true false == "false"; // false false == "0"; // true false == undefined; // false false == null; // false null == undefined; // true " \t\r\n " == 0; // true
Per queste ragioni molti analizzatori di qualità del codice JavaScript (come ad esempio JSLint) consigliano l'uso dell'operatore di identità al posto di quello di uguaglianza.
Per verificare la disuguaglianza abbiamo analogamente gli operatori != e !== mentre per il confronto > (è maggiore di), >= (è maggiore o uguale a), < (è minore di) e <= (è minore o uguale a).
Nota: come in tutti i linguaggi di tipo c-like (e a differenza ad esempio di Visual Basic) il singolo segno di uguaglianza = è usato per l'assegnazione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare gli snapshot con Azure File shares
Sviluppare applicazioni serverless con Azure Container Apps
Controllare gli accessi IP alle app con Azure Container Apps
Consumare un endpoint generico in Blazor
Miglioramenti alla leggibilità delle Media Query con le specifiche di livello 4
Test reporting in un workflow di GitHub
Utilizzo di Set e Array in JavaScript
Confronto tra moduli in Javascript: ES e commonJS
Ottimizzare il codice JavaScript utilizzando WeakMap e WeakSet
Le novità di .NET 7 e C# 11
Gestire gli errori di caricamento delle immagini
Utilizzare il tag HTML template