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
Ottenere un token di accesso per una GitHub App
Applicare un filtro per recuperare alcune issue di GitHub
Ottimizzare le performance usando Span<T> e il metodo Split
Generare velocemente pagine CRUD in Blazor con QuickGrid
Creare una custom property in GitHub
Ricevere notifiche sui test con Azure Load Testing
Creare una libreria CSS universale: Nav menu
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Utilizzare gRPC su App Service di Azure
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Utilizzare i variable font nel CSS
Fornire parametri ad un Web component HTML