Comment deux chaînes identiques ne se valent-elles pas?
Quelqu'un m'a envoyé ce mail:
Pourquoi ces deux alerte aux faux?
alert('a' == 'a');
alert('a' === 'a');
Voici une démo
JSFiddle DÉMO
source d'informationauteur qwertymk
Vous devez vous connecter pour publier un commentaire.
Est-ce une ruse? Avez-vous générer ces
a's
avec quelques unicode magie? J'ai supprimé lea's
et re-saisie, et maintenant les deux alertes montrertrue
comme ils le devraientMis À Jour Le Violon
La première
a
de chacun n'est pas en fait une simplea
. Si vous placez le curseur juste après et cliquez sur la touche retour arrière, vous supprimez ce "quelque chose", et ensuite, il retournetrue
.J'ai copié votre
a
chaîne, c'est ce que je reçois lors de l'exécution de ce code:Voir quel est le problème ici? La longueur de la chaîne est de 4.
En outre, ce:
..retourne:
Lorsque, pour une simple chaîne de caractères avec la lettre
a
il ne doit êtreYQ==
.Le caractère supplémentaire est appelé un "ZÉRO DE LA LARGEUR DE NON-JOINER".
Pour le premier " a " de la console dit:
8204 semble être une valeur unicode pour Largeur zéro non-menuisier
Tandis que pour le second son:
Il est naturel que les différentes chaînes sont différentes :).