Uguaglianza debole e stretta
Comprenda i confronti tra == e ===.
Uguaglianza debole e stretta è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 4 lezioni in totale.
Due operatori di uguaglianza
JavaScript dispone di due operatori di uguaglianza. L'uguaglianza stretta (triplo uguale) confronta senza conversione. L'uguaglianza debole (doppio uguale) converte i tipi prima del confronto.
console.log(1 === 1)
console.log(1 == "1")Uguaglianza stretta
L'uguaglianza stretta restituisce true solo quando coincidono sia il tipo sia il valore. Non avviene alcuna coercizione.
console.log(5 === 5)
console.log(5 === "5")
console.log(true === 1)L'uguaglianza debole applica la coercizione
L'uguaglianza debole tenta di convertire gli operandi in un tipo comune prima del confronto, il che può produrre risultati true sorprendenti.
console.log(5 == "5")
console.log(true == 1)
console.log(0 == false)Numero e stringa
Quando si confrontano un numero e una stringa con l'uguaglianza debole, la stringa viene prima convertita in un numero.
console.log("10" == 10)
console.log("10" === 10)Coercizione dei booleani
Con l'uguaglianza debole, un booleano viene convertito in un numero: quindi true diventa 1 e false diventa 0 prima del confronto.
console.log(true == 1)
console.log(false == 0)
console.log(true == 2)Null e undefined
L'uguaglianza debole considera null e undefined uguali tra loro, ma non uguali ad altri valori come zero.
console.log(null == undefined)
console.log(null === undefined)
console.log(null == 0)L'eccezione di NaN
NaN non è uguale a nulla, nemmeno a sé stesso, con nessuno dei due operatori. Utilizzi Number.isNaN per verificarlo.
console.log(NaN === NaN)
console.log(NaN == NaN)
console.log(Number.isNaN(NaN))Riferimenti agli oggetti
Gli oggetti vengono confrontati per riferimento, non per contenuto. Due oggetti distinti con proprietà identiche non sono mai uguali.
const a = { x: 1 }
const b = { x: 1 }
console.log(a === b)
console.log(a === a)Risultati sorprendenti dell'uguaglianza debole
L'uguaglianza debole può produrre risultati controintuitivi. Una stringa vuota è uguale a zero e un array vuoto è uguale a false dopo la coercizione.
console.log("" == 0)
console.log([] == false)
console.log("0" == false)Preferire l'uguaglianza stretta
La maggior parte delle guide di stile consiglia di usare per impostazione predefinita l'uguaglianza stretta, così da evitare bug dovuti a coercioni implicite. Ricorra all'uguaglianza debole solo per una ragione precisa.
const value = "42"
if (value === "42") {
console.log("matched as string")
}Verificare null o undefined
Un uso accettato dell'uguaglianza debole consiste nel verificare insieme null o undefined, poiché il pattern null con il doppio uguale comprende entrambi.
function check(v) {
if (v == null) {
return "missing"
}
return "present"
}
console.log(check(undefined))
console.log(check(0))Verifica rapida
Verifichi la Sua conoscenza dell'uguaglianza.
Riepilogo
Riepilogo: il triplo uguale evita la coercizione; il doppio uguale la applica.
- L'uguaglianza stretta verifica tipo e valore
- L'uguaglianza debole converte prima in un tipo comune
- Con l'uguaglianza debole, null è uguale solo a undefined
- Preferisca l'uguaglianza stretta per impostazione predefinita
console.log(1 === 1)
console.log(1 == "1")Domande Frequenti
La lezione «Uguaglianza debole e stretta» è gratuita?
Sì — il testo completo di «Uguaglianza debole e stretta» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 4 lezioni in totale.
Cosa imparerò in «Uguaglianza debole e stretta»?
Comprenda i confronti tra == e ===. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare JavaScript Academy?
Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Uguaglianza debole e stretta»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?
Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Valori truthy e falsy
- Uguaglianza debole e stretta
- Conversione implicita nelle operazioni
- Tecniche di conversione esplicita