1. Le rôle de JavaScript "=="
1. Lorsque le contenu de == des deux côtés est des chaînes, comparez si le contenu de la chaîne est égal.
2. Lorsque le contenu des deux côtés de == est des nombres, comparez si les tailles des nombres sont égales.
3. Lorsque les contenus des deux côtés de == sont des objets ou des attributs de fonction des objets, comparez si les adresses de mémoire sont égales.
2. La différence entre == et ===
== Utilisé pour la comparaison générale, === Utilisé pour une comparaison stricte, == Vous pouvez convertir le type de données pendant la comparaison, === Comparaison stricte et retourner la flottaison tant que les types ne correspondent pas.
Donnez un exemple:
<script type = "text / javascript"> alert ("/" / "== true le résultat est:" + ("" == true)); alert ("/" / "=== Le résultat est:" + ("" == true)); alert ("/" / "=== Le résultat est: "+ (" "==)); alert (" / "/" ==== "+ (" "==)); alert (" / "/" === "+ (" "===)); </ script>"1" == Les types de vraies sont différents, "==" La conversion de type sera effectuée en premier, et fidèle à 1 est converti, c'est-à-dire "1" == 1; À l'heure actuelle, les types sont toujours différents, continuent d'effectuer la conversion de type et "1" est converti, c'est-à-dire 1 == 1; À ce moment, "==" Les types des deux côtés de la gauche et de la droite sont numériques, ce qui est relativement réussi!
"1" === Vrai Le côté gauche est le type de caractère, le côté droit est le type bool, les côtés gauche et droit sont différents, le résultat est faux;
"1" === 1 Le côté gauche est un type de caractère, le côté droit est un type numérique int, et les côtés gauche et droit sont différents, et le résultat est faux;
Résultats en cours:
Résumer:
La différence entre == et ==: "==" seules les valeurs doivent être égales; "===" Les valeurs et les types doivent être égaux.
Permettez-moi d'expliquer en détail la différence entre trois signes égaux et deux signes égaux en JavaScript.
== L'égalité est équivalente, === L'identité est l'égalité.
==, lorsque les deux côtés ont différents types de valeurs, la conversion de type doit être effectuée d'abord, puis la comparaison.
==, aucune conversion de type n'est effectuée, différents types doivent être différents.
Les éléments suivants sont expliqués séparément:
Parlons de ===, c'est relativement simple.
Les règles suivantes sont utilisées pour déterminer si les deux valeurs === sont égales:
1. Si les types sont différents, ils sont [inégaux]
2. Si les deux sont des valeurs numériques et sont la même valeur, alors [égal]; (! Exception) est, si au moins l'un d'entre eux est nan, alors [pas égal]. (Pour déterminer si une valeur est nan, vous ne pouvez utiliser qu'Isnan () pour juger)
3. Si les deux sont des chaînes et que les caractères de chaque position sont les mêmes, alors [l'égalité]; sinon [pas égal].
4. Si les deux valeurs sont vraies, ou les deux sont fausses, alors [égal].
5. Si les deux valeurs se réfèrent au même objet ou fonction, alors [égalité]; sinon [pas égal].
6. Si les deux valeurs sont nuls, ou les deux non définies, alors [égale].
Parlons de ==, selon les règles suivantes:
1. Si les deux types de valeur sont les mêmes, make === comparaison.
2. Si les deux types de valeur sont différents, ils peuvent être égaux. La conversion de type est effectuée conformément aux règles suivantes, puis comparées:
un. Si l'un est nul et l'autre n'est pas défini, alors [égal].
né Si l'un est une chaîne et l'autre est une valeur numérique, convertissez la chaîne en valeur numérique, puis comparez-la.
c. Si une valeur est vraie, convertissez-la en 1 et comparez-la; Si une valeur est fausse, convertissez-la en 0 et comparez-la.
d. Si l'un est un objet et l'autre est numérique ou chaîne, convertissez l'objet en valeur du type de base, puis comparez-le. Convertissez un objet en un type de base et utilisez sa méthode TOSTRING ou Valeur. La classe intégrée JS Core essaiera de valoriser avant ToString; L'exception est Date, qui utilise la conversion TOSTRING. Objet de base non js,
Lingshuo (je ne comprends pas beaucoup)
e. Toute autre combinaison est [inégale].
Par exemple:
"1" == true
Si les types sont différents, Vrai sera d'abord converti en valeur 1, et maintenant il devient "1" == 1, puis convertir "1" en 1, et comparer 1 == 1, qui est égal.
= Opérateur d'affectation
== égal à
=== strictement égal à
exemple:
var a = 3;
var b = "3";
a == b renvoie vrai
a === b renvoie faux
Parce que les types de A et B sont différents
=== Utilisé pour faire des jugements de comparaison stricts