Gli operatori di confronto in JavaScript: guida completa con esempi
Quando scriviamo codice in JavaScript, uno degli strumenti fondamentali che utilizziamo per prendere decisioni sono gli operatori di confronto.
Servono a confrontare due valori e restituiscono sempre un risultato booleano:
true
false
Sono alla base di strutture come if, while, for e di molte logiche applicative.
Operatori di uguaglianza
== (uguaglianza debole)
Confronta due valori facendo conversione di tipo automatica (type coercion).
5 == "5" // true
JavaScript converte la stringa "5" in numero prima di confrontarla.
⚠️ Può portare a risultati inaspettati:
0 == false // true
"" == false // true
=== (uguaglianza stretta)
Confronta valore e tipo, senza conversioni automatiche.
5 === "5" // false
5 === 5 // true
È l’operatore consigliato nella maggior parte dei casi.
!= e !==
Sono le versioni di disuguaglianza:
5 != "5" // false
5 !== "5" // true
Anche qui, !== è preferibile perché non fa conversioni implicite.
Operatori di confronto numerico
Questi operatori confrontano valori numerici (o valori convertibili in numeri).
> maggiore di
< minore di
>= maggiore o uguale
<= minore o uguale
Esempi:
10 > 5 // true
3 < 1 // false
5 >= 5 // true
4 <= 2 // false
Attenzione alle stringhe!
Se confronti stringhe, JavaScript usa l’ordine lessicografico (alfabetico basato su Unicode).
"b" > "a" // true
"10" > "2" // false
Perché?
Perché confronta carattere per carattere:
"1"viene prima di"2"
Esempi pratici in un if
let eta = 18;
if (eta >= 18) {
console.log("Sei maggiorenne");
}
Confronto con uguaglianza stretta:
let ruolo = "admin";
if (ruolo === "admin") {
console.log("Accesso completo");
}
Confronti con valori speciali
null e undefined
null == undefined // true
null === undefined // false
Questo è un caso particolare della coercizione.
NaN (Not a Number)
NaN è un valore speciale in JavaScript.
NaN == NaN // false
NaN === NaN // false
Per verificare se un valore è NaN bisogna usare:
Number.isNaN(valore)
Buone pratiche
✅ Preferisci sempre:
❌ Evita:
a meno che tu non sappia esattamente cosa stai facendo.
Tabella riassuntiva
| Operatore | Descrizione | Converte il tipo? |
|---|---|---|
== |
Uguaglianza debole | ✅ Sì |
=== |
Uguaglianza stretta | ❌ No |
!= |
Disuguaglianza debole | ✅ Sì |
!== |
Disuguaglianza stretta | ❌ No |
> < >= <= |
Confronto numerico | Dipende dal contesto |
Conclusione
Gli operatori di confronto in JavaScript sono semplici da usare, ma possono diventare insidiosi a causa della conversione automatica dei tipi.
🎯 Regola d’oro:
Usa sempre
===e!==per evitare comportamenti imprevisti.
Capire bene questi operatori ti aiuterà a scrivere codice più sicuro, leggibile e professionale.
Perfetto! Ecco una sezione di esercizi pronti per il blog, divisi per livello di difficoltà, con soluzioni alla fine (così puoi usarli anche come quiz).
Cosa restituisce il seguente codice?
5 == "5"
Qual è il risultato?
5 === "5"
Cosa stampa?
console.log(10 > 8);
Il seguente confronto è vero o falso?
"3" > 2
Cosa restituisce?
null === undefined
Qual è il risultato?
0 == false
E questo?
0 === false
Cosa restituisce?
"" == false
Qual è il risultato?
"10" > "2"
Cosa stampa questo codice?
let eta = "18";
if (eta === 18) {
console.log("Maggiorenne");
} else {
console.log("Non maggiorenne");
}
Cosa restituisce?
NaN === NaN
Qual è il risultato?
null == 0
Cosa stampa?
let valore = undefined;
if (valore == null) {
console.log("È null o undefined");
}
Qual è il risultato?
[1,2] == "1,2"
Cosa restituisce?
true == "1"
1️⃣ true
2️⃣ false
3️⃣ true
4️⃣ true → la stringa “3” viene convertita in numero
5️⃣ false
6️⃣ true → coercizione di tipo
7️⃣ false → tipi diversi
8️⃣ true → stringa vuota diventa false
9️⃣ false → confronto lessicografico
🔟 “Non maggiorenne” → tipi diversi
1️⃣1️⃣ false → NaN non è mai uguale a se stesso
1️⃣2️⃣ false
1️⃣3️⃣ Stampa “È null o undefined”
1️⃣4️⃣ true → l’array viene convertito in stringa "1,2"
1️⃣5️⃣ true → la stringa viene convertita in numero
Continuare la lettura sul sito di origine:
https://www.codingcreativo.it/gli-operatori-di-confronto-in-javascript-guida-completa-con-esempi/
Commenti