Operatori di confronto in JavaScript: == e ===

di Matteo Casati,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi