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
Eseguire attività con Azure Container Jobs
Gestire undefined e partial nelle reactive forms di Angular
Cambiare la chiave di partizionamento di Azure Cosmos DB
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Reactive form tipizzati con modellazione del FormBuilder in Angular
Disabilitare automaticamente un workflow di GitHub (parte 2)
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Utilizzare i primary constructor in C#
C# 12: Cosa c'è di nuovo e interessante
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Eseguire operazioni sui blob con Azure Storage Actions