Realizato da

Pubblicato il

differenza

doppio

triplo

uguale

javascript


Ciao a tutti e benvenuti in questa guida dove vi parlerò brevemente delle differenze che ci sono tra il doppio uguale == ed il triplo uguale === in JavaScript. In seguito andremo a discutere se è meglio utilizzare == o === nei vostri programmi JS.

Qual è la differenza tra == e === in JavaScript?

La differenza principale sta nel metodo utilizzato per determinare se i due dati sono uguali. 

Nel caso del doppio uguale == viene effettuata un'uguaglianza astratta (abstract equality) e nel caso del triplo uguale === viene effettuata un'uguaglianza stretta (strict equality). Ma cosa significano questi due termini? Vediamo insieme!

La differenza tra i due non è difficile da capire, e sono convinto che riuscirete a capirla guardando questo semplice snippet JS.

console.log(1 == '1');
// true
console.log(1 === '1');
// false


Capito? Se ancora non avete capito non vi preoccupate ecco la spiegazione:

Nel caso del doppio uguale (==), l’uguaglianza astratta effettuerà una conversione tra i due valori da confrontare, prima di decidere se restituire true o false

Nel caso del triplo uguale (===), l’uguaglianza restituirà true se il valore ed il tipo dei due dati sono uguali, e false se i due dati sono di tipo diverso (anche se hanno lo stesso valore).

quali sono le differenze tra == e === in JavaScript JS

Nell’esempio in alto eseguiamo un controllo di uguaglianza tra due valori (1). Ma il valore a sinistra dell’uguale è un numero, e quello a destra dell’uguale è una String. 

Nella prima linea, utilizzando == possiamo vedere un risultato dell’uguaglianza positivo dato che i due dati hanno lo stesso valore una volta effettuata la conversione del tipo.

Nella seconda linea invece utilizzando === viene subito rivelato che i due dati sono di tipo diverso (un numero ed una String) e viene restituito immediatamente un false.

Altri esempi delle differenze tra == e === in JavaScript

Se ancora non siete convinti di cosa cambia tra == e === in JS andiamo ad analizzare altri esempi con diversi tipi di dati.

Prendiamo come esempio questo snippet:

console.log('1' == true);
// true
console.log('1' === true);
// false


Se eseguiamo questo codice possiamo vedere di nuovo le differenza tra == e === in JavaScript. In JS true e false hanno una corrispondenza numerica dove true corrisponde ad 1 e false a 0. Nell’esempio superiore possiamo vedere che con il doppio uguale == i due valori vengono convertiti e l’uguaglianza esiste. Con l’uso del triplo uguale === viene visto che i due dati non sono dello stesso tipo e viene restituito false.

Un esempio che forse potrebbe confondere qualcuno sul funzionamento di == e === in JS è questo:

consoe.log('ciao' == new String('ciao'));
// true
consoe.log('ciao' === new String('ciao'));
// false


Questo esempio mostra la differenza sottile che vi è tra le String literals (Stringhe anonime) e gli oggetti String. Questi due potrebbero sembrare dello stesso tipo ma non lo sono!

È meglio utilizzare == o === in JavaScript?

In fine andiamo a vedere se nella programmazione web è meglio utilizzare == o ===

In generale è meglio utilizzare il triplo uguale nelle vostre app, perché rende il codice più preciso e specifico.  Il === aiuta ad eliminare problemi che si possono presentare quando un’uguaglianza passa per positiva anche se non doveva. 

Se dovete fare un confronto fra dati di diverso tipo è una best practice convertire manualmente il tipo di dato, ed in seguito utilizzare il triplo uguale === In questo modo possiamo gestire meglio gli errori e rendere le nostre applicazioni molto più stabili.

Spero che ora avete un’idea più precisa delle differenze che ci sono tra == e === in JavaScript. Se avete qualche dubbio o domande su JS, programmazione o altro commentate in basso e risponderò appena possibile.

Grazie e ci vediamo alla prossima :)

Grazie per aver letto questa guida di Devnews.it

Spero ti sia stata utile in qualche modo. Ti prego di supportare questa pagina mettendo mi piace alle nostre pagine social cliccando un basso, dove pubblichiamo regolermente notizie, tutorial e fatti curiosi sull'informatica. Grazie e ci vediamo alla prossima :)