Confronto JavaScript e operatori logici
Gli operatori di confronto e logici vengono utilizzati per testare true
o
false
.
Operatori di confronto
Gli operatori di confronto vengono utilizzati nelle istruzioni logiche per determinare l'uguaglianza o la differenza tra variabili o valori.
Premesso ciò x = 5
, la tabella seguente spiega gli operatori di confronto:
Operator | Description | Comparing | Returns | Try it |
---|---|---|---|---|
== | equal to | x == 8 | false | |
x == 5 | true | |||
x == "5" | true | |||
=== | equal value and equal type | x === 5 | true | |
x === "5" | false | |||
!= | not equal | x != 8 | true | |
!== | not equal value or not equal type | x !== 5 | false | |
x !== "5" | true | |||
x !== 8 | true | |||
> | greater than | x > 8 | false | |
< | less than | x < 8 | true | |
>= | greater than or equal to | x >= 8 | false | |
<= | less than or equal to | x <= 8 | true |
Come si puó usare
Gli operatori di confronto possono essere utilizzati nelle istruzioni condizionali per confrontare i valori e agire in base al risultato:
if (age < 18) text = "Too young to buy alcohol";
Imparerai di più sull'uso delle istruzioni condizionali nel prossimo capitolo di questo tutorial.
Operatori logici
Gli operatori logici vengono utilizzati per determinare la logica tra variabili o valori.
Detto questo x = 6
e y = 3
, la tabella seguente spiega gli operatori logici:
Operator | Description | Example | Try it |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
Operatore condizionale (ternario).
JavaScript contiene anche un operatore condizionale che assegna un valore a una variabile in base ad alcune condizioni.
Sintassi
variablename = (condition) ? value1:value2
Esempio
let voteable = (age < 18) ? "Too young":"Old enough";
Se la variabile età è un valore inferiore a 18 anni, il valore della variabile votabile sarà "Troppo giovane", altrimenti il valore di votabile sarà "Abbastanza grande".
Confronto di diversi tipi
Il confronto di dati di diverso tipo può dare risultati inaspettati.
Quando si confronta una stringa con un numero, JavaScript converte la stringa in un numero durante il confronto. Una stringa vuota viene convertita in 0. Viene convertita una stringa non numerica in NaN
cui è sempre false
.
Case | Value | Try |
---|---|---|
2 < 12 | true | |
2 < "12" | true | |
2 < "John" | false | |
2 > "John" | false | |
2 == "John" | false | |
"2" < "12" | false | |
"2" > "12" | true | |
"2" == "12" | false |
Quando si confrontano due stringhe, "2" sarà maggiore di "12", perché (in ordine alfabetico) 1 è minore di 2.
Per garantire un risultato corretto, le variabili devono essere convertite nel tipo corretto prima del confronto:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}