Marzo 10, 2021

== vs === Perché non tutto è uguale (e meno in JavaScript)

<"7c29aaff7f">

Se ne hai mai notato, non tutti gli operatori uguali sono uguali a JavaScript;). In particolare, sto parlando di == (doppio uguale) e === (triplo uguale). Infatti, anche se in apparenza fanno cose simili, in molti casi si comportano completamente in modo diverso. La buona gestione di questi due operatori è essenziale per un buon sviluppo e non incorporare errori indesiderati. Ma hey, vediamo cosa è tutto questo!

Doppio uguale (==)

Quando nel nostro codice vogliamo confrontare due variabili, possiamo usare questo operatore per verificare che quelle Due variabili sono uguali, ma … Attenzione! Perché se le due variabili che vogliamo confrontare sono di tipi diversi, il comportamento del nostro codice può diventare “strano”.

per capire un po ‘meglio la spiegazione , aggiusta il mio post di digitazione dinamica.

Come saprai (almeno dopo aver letto il post di battitura dinamica), JavaScript è la digitazione dinamica e che porta al motore applica la coercizione per trasformare una variabile da un tipo a un altro . Molte volte che la trasformazione non è ciò che ci aspettiamo, posso sembrare molto quando si utilizza l’operatore “==”.

Fondamentalmente, l’operatore == cosa fa parte di 2 valori ma lo fa Controllo del tipo di variabili.

doppio operatore uguale (==): confronta 2 valori ma lo fa senza controllare il tipo di variabili

Con questo voglio dire quanto segue: Se per esempio, ho una variabile che è numerica e vale 1 e ho una variabile stringa che vale ‘1’, se confrontata con questo operatore , la risposta darà true:

var a = 1;var b = '1'if (a == b) { console.log('son iguales')} else { console.log('son diferentes')}

Queste stampe sullo schermo “sono le stesse”, sì, esattezza, anche se sono tipi diversi; Poiché JavaScript converte le due variabili sullo stesso tipo usando la coercizione, queste due variabili finiscono per essere la stessa.

coercizione: convertire il valore di una variabile da un tipo a un altro, per Esempio Conversione del valore ‘1’ (tipo di stringa) in numerico, comporterebbe il valore 1 (del tipo numerico)

ma cosa succede se confrontiamo il valore falso Con il numero zero?

var a = false;var b = 0;if (a == b) { console.log('son iguales')} else { console.log('son diferentes')}

Proste anche stampa sullo schermo ‘sono le stesse’. E perché? Perché quando JavaScript converte 0 (zero) per booleano, per il motore JavaScript, 0 (zero) diventa falso, quindi si chiede se falsa è uguale a false e la condizione restituisce la stampa True Stampa sullo schermo ‘sono uguali “.

è un caso in più, mostrando il seguente sullo schermo?

var a = '';var b = 0;if (a == b) { console.log('son iguales')} else { console.log('son diferentes')}

Questa stampe è uguale ‘anche se’. molto diverso, poiché, alla variabile “A” il cui valore è una stringa vuota, quando si laverono in un valore numerico, questo è uguale a 0 (zero).

e come faccio quando voglio Confronta tenendo conto anche del tipo di variabile?

Sei dotato di!, Utilizzando lo stesso funzionamento triplo (===)

triplo uguale (===)

In conti sommari, il triplo controlla ugualmente il contenuto della variabile e anche, verificare che le due variabili siano dello stesso tipo. Ecco perché si dice che sia più sicuro del == (doppio uguale).

Triple Operatore uguale (===): controlla il contenuto del Vari E anche, verificare che le due variabili siano dello stesso tipo.

Ritorno all’esempio precedente:

In questo caso, come “A” e “B” non sono dello stesso tipo, è stampato su console ‘sono diversi’.

con l’esempio:

var a = false;var b = 0;if (a === b) { console.log('son iguales')} else { console.log('son diferentes')}

è anche visualizzato in console ‘sono diversi “poiché” A “del tipo booleano e” B “del tipo numerico è diverso.

infine :

var a = '';var b = 0;if (a === b) { console.log('son iguales')} else { console.log('son diferentes')}

Come puoi supporre, stampando anche in console ‘sono diversi’.

Conclusione

Come puoi vedere, c’è una grande differenza tra l’uso == e ===, infatti, il tuo uso improprio può portare a insetti indesiderati. Pertanto, al dubbio, usa sempre === e risparmierai più di un mal di testa.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *