Uguaglianza stretta vs non rigorosa
Fa parte della sezione Fondamenti del percorso JavaScript di Coddy. Lezione 16 di 77.
In JavaScript, esistono due tipi di operatori di uguaglianza: uguaglianza debole (==) e uguaglianza stretta (===).
L’uguaglianza debole (==) verifica se due valori sono uguali dopo aver eseguito la coercizione dei tipi. Ciò significa che se gli operandi hanno tipi diversi, JavaScript proverà a convertirli in un tipo comune prima di effettuare il confronto.
Per esempio:
let b = 5 == "5"; // Risulta true, perché la stringa "5" viene convertita nel numero 5 prima del confrontolet b = 0 == false; // Risulta true, perché il valore booleano false viene convertito nel numero 0 prima del confrontolet c = "" == false; // È true, perché la stringa vuota viene convertita nel numero 0 prima del confrontoL’uguaglianza rigorosa (===), invece, verifica se due valori sono uguali senza eseguire alcuna conversione di tipo. Se gli operandi sono di tipi diversi, sono considerati diversi.
Per esempio:
let b = 5 === "5"; // Contiene false, perché non viene eseguita alcuna conversione di tipo e un numero non è uguale a una stringalet b = 0 === false; // Contiene false, perché non viene eseguita alcuna conversione di tipo e il numero 0 non è uguale al valore booleano falseIn generale, si consiglia di usare l'uguaglianza stretta (===) nella maggior parte dei casi per evitare risultati imprevisti dovuti alla coercizione dei tipi.
Allo stesso modo, esistono anche gli operatori di disuguaglianza debole (!=) e di disuguaglianza stretta (!==), che funzionano in modo simile, ma verificano la disuguaglianza invece dell’uguaglianza.
La disuguaglianza debole (!=) verifica se due valori non sono uguali dopo aver eseguito la conversione di tipo, mentre la disuguaglianza stretta (!==) verifica se due valori non sono uguali senza eseguire la conversione di tipo.
Sfida
PrincipianteTi viene fornito un codice con tre variabili: a, b e c.
Il tuo compito è eseguire i seguenti confronti e stampare i risultati:
- Verifica se
aè uguale in modo non rigoroso abe memorizza il risultato ind. - Verifica se
aè uguale in modo rigoroso ace memorizza il risultato ine. - Verifica se
bè diverso in modo non rigoroso dace memorizza il risultato inf. - Verifica se
aè diverso in modo rigoroso dabe memorizza il risultato ing.
Usa le variabili e gli operatori di confronto forniti per completare il compito.
Provalo tu
// Variabili fornite
let a = 10
let b = "10"
let c = true
// Scrivi il tuo codice qui sotto
// Non modificare la riga qui sotto
console.log(`d = ${d}`)
console.log(`e = ${e}`)
console.log(`f = ${f}`)
console.log(`g = ${g}`)Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori - Parte 2
Operatori logici - Parte 1Operatori logici - Parte 2Riepilogo - Logica sempliceOperatori logici - Parte 3Coercizione dei tipi7Calcolatore per dividere il conto
Messaggio di benvenutoCalcolare la mancia e il totale10FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz13Gestore della lista della spesa
Panoramica del progettoAggiungere un elemento2Variabili
NumeriStringheBooleaniConvenzioni di denominazioneVariabili vuoteRiepilogo - Inizializzare le variabiliCostanti3Operatori Parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheOperatori di confrontoUguaglianza stretta vs non rigorosaRipasso - matematica semplice6Input/Output di base
OutputOutput con variabiliConversione di tipo - Parte 1Conversione di tipo - Parte 2Ripasso - Fino a 120Ripasso - Vero o falsoEsercitati da solo: Compilatore JavaScript online