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
Definire il metodo di rilascio in .NET Aspire
Gestione file Javascript in Blazor con .NET 9
Impostare automaticamente l'altezza del font tramite CSS
Gestire trasferimenti cloud con Azure Storage Mover
Configurare automaticamente un webhook in Azure DevOps
Gestire gli errori nelle Promise JavaScript con try()
Ridurre il reflow cambiando il CSS
La gestione della riconnessione al server di Blazor in .NET 9
Ciclo di vita risorse con .NET Aspire
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Mischiare codice server side e client side in una query LINQ con Entity Framework
Integrazione di Copilot in .NET Aspire


