Maison > interface Web > Questions et réponses frontales > Comment déterminer si une phase est égale en JavaScript

Comment déterminer si une phase est égale en JavaScript

青灯夜游
Libérer: 2022-02-23 18:57:51
original
3530 Les gens l'ont consulté

Comment déterminer l'égalité en JavaScript : 1. Utilisez l'opérateur "==" ou "!==" pour comparer si les valeurs des deux opérandes sont égales ; 2. Utilisez l'opérateur "===" ou " ! ==" symbole de l'opérateur, compare si les valeurs des deux opérandes sont égales et vérifie si leurs types sont les mêmes.

Comment déterminer si une phase est égale en JavaScript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

JavaScript détermine l'égalité

En JavaScript, vous pouvez utiliser l'opérateur =====!=!== pour déterminer l'égalité ou l'inégalité

Opérateur de détection d'égalité Explication
==(Égalité) Comparez si les valeurs des deux opérandes sont égales
!= (je ne veux pas attendre) Comparez si les valeurs des deux opérandes ne sont pas égales
=== (Congruent) Comparez les deux si les valeurs des deux opérandes sont égales et vérifiez si leurs types sont les mêmes
!== (non congruents) Comparez si les valeurs des deux opérandes ne le sont pas égaux et vérifiez si leurs types ne sont pas les mêmes

Dans l'opération d'égalité, vous devez faire attention aux problèmes suivants :

  • Si l'opérande est une valeur booléenne, elle est d'abord convertie en valeur numérique , où false est converti en 0 et true est converti en 1.

  • Si un opérande est une chaîne et que l'autre opérande est un nombre, essayez d'abord de convertir la chaîne en nombre.

  • Si un opérande est une chaîne et que l'autre opérande est un objet, essayez d'abord de convertir l'objet en chaîne.

  • Si un opérande est un nombre et que l'autre opérande est un objet, essayez d'abord de convertir l'objet en nombre.

  • Si les deux opérandes sont des objets, comparez les adresses de référence. Si les adresses de référence sont les mêmes, elles sont égales ; sinon elles ne sont pas égales.

Exemple 1

Ce qui suit est une comparaison d'égalité d'opérandes spéciaux.

console.log("1" == 1);  //返回true。字符串被转换为数字
console.log(true == 1);  //返回true。true被转换为1
console.log(false == 0);  //返回true。false被转换为0
console.log(null == 0);  //返回false
console.log(undefined == 0);  //返回false
console.log(undefined == null);  //返回true
console.log(NaN == "NaN");  //返回false
console.log(NaN ==1);  //返回false
console.log(NaN == NaN);  //返回false
console.log(NaN != NaN);  //返回true
Copier après la connexion

NaN ​​​​n'est égal à aucune valeur, y compris elle-même. Les valeurs nulles et indéfinies sont égales, mais ce sont des types de données différents. Dans les comparaisons d'égalité, null et undefined ne peuvent pas être convertis en d'autres types de valeurs.

Exemple 2

Les valeurs des deux variables suivantes sont égales.

var a = "abc" + "d";
var b = "a" + "bcd";
console.log(a == b);  //返回true
Copier après la connexion

L'opération de comparaison d'égalité des valeurs numériques et booléennes est relativement efficace, tandis que les chaînes doivent être comparées caractère par caractère, et l'efficacité de l'opération de comparaison d'égalité est relativement faible.

Dans les opérations de congruence, vous devez faire attention aux problèmes suivants :

  • Si les deux opérandes sont des valeurs simples, alors ils sont congrus tant que les valeurs sont égales et que les types sont les mêmes.

  • Si un opérande est une valeur simple et que l'autre opérande est un objet composite, ils ne sont pas congruents.

  • Si les deux opérandes sont des objets composites, comparez si les adresses de référence sont les mêmes.

Exemple 3

Ce qui suit est une comparaison congruente d'opérandes spéciaux.

console.log(null === undefined);  //返回false
console.log(0 === "0");  //返回false
console.log(0 === false);  //返回false
Copier après la connexion

Exemple 4

Ce qui suit est une comparaison de deux objets, qui renvoie vrai puisqu'ils font tous deux référence à la même adresse.

var a = {};
var b = a;
console.log(a === b);  //返回true
Copier après la connexion

Bien que les deux objets suivants aient la même structure, ils ont des adresses différentes, ils ne sont donc pas congruents.

var a = {};
var b = {};
console.log(a === b);  //返回false
Copier après la connexion

Exemple 5

Pour les objets composites, l'adresse de la référence est principalement comparée, et la valeur de l'objet n'est pas comparée.

var a = new String("abcd);  //定义字符串“abcd”对象
var b = new String("abcd);  //定义字符串“abcd”对象
console.log(a === b);  //返回false
console.log(a == b);  //返回false
Copier après la connexion

Dans l'exemple ci-dessus, les valeurs des deux objets sont égales, mais les adresses de référence sont différentes, donc ils ne veulent pas attendre et ne sont pas égaux. Par conséquent, pour les objets composites, les résultats des opérations d’égalité == et de congruence === sont les mêmes.

Exemple 6

Pour les valeurs simples, tant que les types sont les mêmes et les valeurs sont égales, elles sont congruentes, quels que soient les changements de processus de l'opération d'expression, ni l'adresse de référence de la variable.

var a = "1" + 1;
var b = "11";
console.log(a ===b);  //返回true
Copier après la connexion

Exemple 7

L'expression (a>b || a==b) n'est pas exactement égale à l'expression (a>=b).

var a = 1;
var b = 2;
console.log((a > b || a == b) == (a >= b));  //返回true,此时似乎相等
Copier après la connexion

Si null et undefined sont affectés respectivement aux variables a et b, la valeur false est renvoyée, indiquant que les deux expressions ne sont pas complètement équivalentes.

var a = null;
var b = undefined;
console.log((a > b || a == b) == (a >= b));  //返回false,表达式的值并非相等
Copier après la connexion

Parce que null == undefined est égal à true, la valeur de retour de l'expression (a > b || a == b) est vraie, mais la valeur de retour de l'expression null >= undefined est fausse.

【Recommandations associées : Tutoriel d'apprentissage Javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal