Dans JavaScript, les opérateurs == et == peuvent être utilisés pour déterminer si les deux valeurs sont égales; La différence est que si les deux valeurs jugées sont incohérentes, l'opérateur === reviendra directement faux, tandis que l'opérateur == fera un jugement après la conversion de type. Les règles détaillées de jugement sont les suivantes:
=== Règles pour juger les opérateurs
1. Si les types des deux valeurs sont incohérents, retournez faux.
2. Si les deux valeurs ont le même type et que les valeurs sont les mêmes, renvoyez True. Nan est un cas spécial, nan === Nan renvoie false.
3. Si les deux valeurs sont de type d'objet, comme Java, à moins que les références ne soient cohérentes (la référence pointe vers la même adresse objet), même si le contenu de l'objet est exactement le même, les deux valeurs sont considérées comme incohérentes et que l'opération correspondante reviendra fausse. Par exemple, créez deux nouveaux tableaux avec exactement le même contenu, puis effectuez l'opération === et renvoyez le résultat en false - bien que leur contenu soit exactement le même, ils appartiennent toujours à deux objets différents.
4.0 === - 0 Renvoie True.
== Règles de jugement des opérateurs
L'opérateur == tapera la valeur puis le comparera. La conversion de type suit les principes suivants: convertissez-le d'abord en numéro, puis comparez-le, puis convertissez-le d'abord en chaîne, puis comparez-le. Les règles de jugement spécifiques sont les suivantes:
1. Si les deux types de valeur sont les mêmes, retournez après avoir effectué l'opération ===.
2.NULL == Undefined est vrai.
3. Vrai sera converti en 1 et comparé, FAUX sera converti en 0 et comparé.
4. Si l'une des valeurs est un objet, convertissez-le en nombre, puis comparez-le, à l'exception de l'objet de date.
5. Si l'une des valeurs est un objet date, convertissez-le en chaîne, puis comparez-le.
expérience
La copie de code est la suivante:
console.log ("3" === 3); // false
console.log (nan === nan); // false
var a = {x: 1, y: 2};
var b = {x: 1, y: 2};
var c = a;
console.log (a === b); // false
console.log (a === c); // vrai
console.log (0 === -0); // true
console.log ("3" == 3); // true
Console.log (null == Undefined); // Vrai
console.log (true == 1); // true
console.log (true == 9); // false
console.log ([9] == 9); // true
console.log ([9] == "9"); // true
var d = new Date ();
var s = d.toString ();
var n = d.Valueof ();
console.log (d == s); // true
console.log (d == n); // false