PROGRAMMIAMO
JS - Operatori logici
Operatori di confronto

Gli operatori di confronto che è possibile usare nella condizione dell'if sono:

Si noti che in JS (come in C) l'operatore di uguaglianza (==) è indicato diversamente dall'operatore di assegnazione (=). Essi hanno infatti due significati completamente differenti. Si consideri il seguente esempio:

if (a==b)
   b=a+1;

Il significato dell'esempio, tradotto a parole, è: se il valore di a è uguale al valore di b, assegna a b il valore di a + 1.

Il fatto che l'assegnazione (=) non è un'uguaglianza (==) emerge con chiarezza da istruzioni del tipo:

var = var + 1;

L'espressione precedente infatti ha senso solo in un'assegnazione, poiché dal punto di vista matematico l'uguaglianza di var e di var + 1 sarebbe ovviamente impossibile.

Si noti che esistono due operatori di uguaglianza:

La differenza fra i due è che == effettua, se necessario, una conversione di tipo, prima di fare il confronto. Invece === non converte i tipi. Si consideri il caso seguente:

var numero = 123;
var stringa = "123";

if (numero==stringa)
    alert("Sono uguali");

if (numero===stringa)
    alert("Sono strettamente uguali");

In questo caso il primo if viene verificato (e produce la visualizzazione "Sono uguali"): infatti l'operatore == effettua la conversione fra numero e stringa prima di fare il confronto. Il secondo if invece non è verificato, poiché === non effettua nessuna conversione di tipo.

 

 

Operatori logici

Gli operatori logici, usati per concatenare più condizioni in un if, sono:

Ecco un esempio di concatenazione di due condizioni che verifica se num è compreso fra 0 e 10 e, in caso affermativo, lo incrementa di una unità:

if (num >= 0 && num <=10)
   {
   num = num + 1;
   }

Si presti attenzione al fatto che, se i valori da confrontare sono valori numerici, è opportuno convertirli prima (con la funzione Number): in caso contrario gli operatori di confronto confrontano l'ordine alfabetico delle stringhe e non i valori numerici, fornendo risultati errati.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it