#code #javascript
Il y a 3 méthodes pour tester l’égalité de deux variables en JavaScript :
- La loose equality ==
- La strict equality ===
- Object.is()
Objet.is()
est presque identique à ===
mais ne gère pas NaN
et -0
de la même manière.
La loose equality converti les valeurs en nombres avant de les comparer.
La strict equality fait la comparaison sans faire de conversation. Autrement dit: si les types sont différents, alors c’est false
.
Attention ! Ces trois méthodes ne comparent les objets que par référence. Par exemple :
- {} == {}
est false
- {} === {}
est false
- Objet.is({}, {})
est false également
Il faut aussi noter que dans if({})
, {}
est évalué a true
.
Le #lifeprotips est de toujours utiliser la stricte equality, sauf si il y a une bonne raison d’utiliser la loose equality.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness