


Une brève discussion sur l'opérateur d'égalité en JavaScript : la différence entre == et ===
Dans le processus de programmation, nous rencontrons souvent la situation de juger si deux variables sont égales. ECMAscript fournit deux opérateurs d'égalité "==" et "===" Pour juger, les deux. les opérations renverront une valeur booléenne. De manière générale, nous appelons "==" égal et "===" congruent.
Lorsque les types de données des deux variables comparées sont cohérents, la situation est relativement simple. Cependant, lorsque les types de variables des deux côtés de l'opérateur sont incohérents, ou même que l'une des variables est un objet, le La situation est plus compliquée. Comme suit Présentez séparément ce qui arrivera aux résultats de l'opération lorsque les types d'opérandes sont différents.
Le cas de l'opérateur de congruence « === »
L'opérateur de congruence « === » est relativement simple. Lorsque vous utilisez l'opérateur de congruence "===" pour juger, vérifiez d'abord si les types de données des deux côtés de l'opérateur sont cohérents, s'ils sont incohérents, false sera renvoyé directement. Sinon, l'étape suivante du jugement le sera. être fait.
S'il s'agit d'une comparaison de deux booléens, alors les deux côtés de "===" doivent être vrais ou faux avant de pouvoir renvoyer vrai, sinon il renverra faux si les deux comparaisons sont des nombres, alors. seulement si True sera renvoyé uniquement lorsque les deux nombres sont de taille égale, sinon false sera renvoyé.
Si les deux variables à comparer sont des chaînes, comparez d'abord les longueurs des deux chaînes pour voir si elles sont égales. Si les longueurs sont différentes, renvoyez false. Si elles sont égales, commencez par la première. les deux variables. Les caractères commencent à être comparés pour l'égalité et continuent jusqu'au dernier chiffre ; si l'un des chiffres ne veut pas attendre, false est renvoyé, sinon true est renvoyé.
(Remarque : les comparaisons de chaînes n'ignoreront pas les espaces, donc lorsque vous comparez deux chaînes pour voir si elles sont égales, pour garantir la sécurité, vous devez d'abord supprimer les espaces, puis convertir les deux chaînes en majuscules ou minuscules, puis comparer).
Et null ne retournera true que si null===null, sinon il retournera false De même, undefined ne retournera true que si undefined===undefined, sinon il retournera false . Par exemple :
true === 1 //false "1" === 1 //false //boolean的比较 true === true //true true === false //false //string的比较 "hello" === "helloworrld" //false "hello" === "world" //false "hello" === " hello" //false "hello" === "hellO" //false "hello" === "hello" //true //number的比较 1 === 1 //true 1 === 1.0 //true 1 === 1.2 //false //null和undefined的比较 undefined === undefined //true null === null //true undefined === null //false,两者在"=="时才返回true
Si les deux opérandes pour la comparaison "===" ne sont pas des valeurs de type de base, mais deux objets, la base du jugement à ce stade est de juger si les deux variables sont "les mêmes" Object
var a,b,c; a = b = { name : '柳轻侯', city : '南京' }; c = { name : '柳轻侯', city : '南京' }; a === b //true a === c //false
Il ne suffit pas que deux objets « se ressemblent ». a et c sont tous deux des instances d'Object, et ils ont les mêmes propriétés et valeurs, mais ce ne sont pas le « même » objet, car. a et c pointent en fait vers deux instances différentes, donc les deux objets ne sont pas congruents.
Mais a et b pointent vers le même objet. En d'autres termes, a et b sont des alias différents du même objet. Ils pointent en fait exactement vers le même objet, donc a === b. Les règles de comparaison pour "!==" et "===" sont les mêmes et ne seront pas répétées ici.
Opérateur d'égalité "=="
Opérateur de congruence Lors du jugement, si les types des deux variables sont différents, alors renvoie directement faux , mais contrairement à cela, lorsque l'opérateur d'égalité "==" juge, si les types des deux variables sont différents, une conversion de type implicite sera effectuée pour convertir les deux valeurs à comparer dans les mêmes types. comparé à nouveau, alors quelles sont les règles de conversion ?
Lors de la conversion de différents types de données, les opérateurs d'égalité et d'inégalité suivent les règles de base suivantes
- Si l'un des opérandes est une valeur booléenne, il sera comparé avant comparaison La valeur booléenne est converti en valeur numérique, vrai est converti en 1 et faux est converti en 0 ;
- Si l'un des opérandes est de type chaîne et l'autre est de type nombre, le type de chaîne est converti en nombre avant comparaison Le type est ensuite jugé ;
- Indéfini et null ne seront pas convertis en d'autres valeurs pour comparaison avant comparaison ;
- Si l'un des opérandes est un objet et l'autre est un valeur de type de base , puis l'objet est converti en valeur de type de base avant la comparaison, puis les comparaisons suivantes sont effectuées selon les règles précédentes
Les deux opérandes suivent les règles suivantes lors de la comparaison
;- undefined et null sont égaux, c'est-à-dire : undefined == null;
- Si un opérande est NaN, alors false est renvoyé Même si les deux opérandes sont NaN, false sera renvoyé ;
- Si les deux opérandes sont des objets, les règles de comparaison sont les mêmes que les règles de comparaison de "===". Sauf si les deux opérandes sont le même objet, il renvoie vrai, sinon il renvoie faux ; .
Il convient de noter ici que NaN == NaN renvoie false. NaN ne signifie pas un nombre, ce qui signifie que l'opérande est un non-nombre. Ce non-nombre est incertain. et peut même ne pas être exprimée à l'aide de la syntaxe JavaScript. Une telle quantité inconnue ne peut pas être utilisée pour des comparaisons spécifiques. Si vous ne pouvez pas déterminer quelle est sa valeur pour deux choses inconnues, vous ne pouvez bien sûr pas dire NaN == NaN.
Donc puisqu'on ne peut pas utiliser "==" pour comparer, comment déterminer si une variable est NaN ? Puisqu'on ne peut pas utiliser l'égalité pour déterminer, autant faire l'inverse et utiliser "!=" Déterminer si une variable n'est pas égale à NaN. Par exemple :
//如果需要判定一个变量是不是NaN,可以如下 //a是你需要判定的变量 if((typeof a === "number") && a != NaN ){ //此处需要注意,NaN也是number类型 //TODO }
Situations de comparaison courantes et leurs résultats
null == undefined // true "NaN" == NaN // false 5 == NaN // false NaN == NaN // false NaN != NaN // true false == 0 // true true == 1 // true true == 2 // false undefined == 0 // false null == 0 // false "5" == 5 // true
Analyse d'exemples typiques
![] == [] //true
这是一道比较容易令人困惑的题,按照正常的思维模式,对一个操作数逻辑取反,跟这个操作数本身的值是相对的,如果这个操作数本身的值是true,那么取反之后就是false,反之,如果这个操作数的值是false,那么对其逻辑取反之后就是true,无论如何也不会是同一个值,可是事实上却是![] == []。
首先,![]的值是false,因为这里[]被当成了一个数组的实例,是一个对象,而对象都是真值,对其取反,得到一个假值,也就是false。
其次看等号右边,[]是一个对象,要将其转为基本类型值,会先调用数组的valueOf方法,而数组的valueOf方法返回数组本身,没有得到一个基本值。
这时候要继续调用数组的toString方法,得到一个””空字符串,所以这时候也就变成了false == “”是否为真的问题了,而根据前面的规则,如果有一个操作数为boolean值,会将其转为数值,false转化为0。
进而,问题转化为0 == “”是否为真值的问题,当number和string比较时,会将string转为number,而””会转为0。最后,问题变演化成了0 == 0是否为真值,毋庸置疑,结果是true。
这里要注意的就是![],它被当成了一个整体的逻辑值,是直接对对象进行取反,是一个假值,而不是先把[]转化为基本值再取反
小结
“==”在比较不同类型值得时候会进行隐式的类型转化,而”===”不会转化,全等一定相等,相等却不一定全等,这是一个充分不必要条件。
undefined和null相等而不全等,且在相等比较的时候不会转化为其他类型的值。NaN是不等于NaN 的,要判断某个变量是不是NaN,要用”!=”。对象和非对象在进行比较的时候会先转为基本类型值然后再根据上面的规则进行比较。
推荐教程:《JS教程》
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser JS et Baidu Map pour implémenter la fonction de panoramique de la carte Baidu Map est une plate-forme de services cartographiques largement utilisée, souvent utilisée pour afficher des informations géographiques, le positionnement et d'autres fonctions dans le développement Web. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de panoramique de la carte et fournit des exemples de code spécifiques. 1. Préparation Avant d'utiliser l'API Baidu Map, vous devez d'abord demander un compte de développeur sur Baidu Map Open Platform (http://lbsyun.baidu.com/) et créer une application. Création terminée

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Outils essentiels pour l'analyse boursière : découvrez les étapes pour dessiner des graphiques en bougies en PHP et JS. Des exemples de code spécifiques sont nécessaires. Avec le développement rapide d'Internet et de la technologie, le trading d'actions est devenu l'un des moyens importants pour de nombreux investisseurs. L'analyse boursière est une partie importante de la prise de décision des investisseurs, et les graphiques en bougies sont largement utilisés dans l'analyse technique. Apprendre à dessiner des graphiques en bougies à l'aide de PHP et JS fournira aux investisseurs des informations plus intuitives pour les aider à prendre de meilleures décisions. Un graphique en chandeliers est un graphique technique qui affiche les cours des actions sous forme de chandeliers. Il montre le cours de l'action

Comment utiliser PHP et JS pour créer un graphique en bougies boursières. Un graphique en bougies boursières est un graphique d'analyse technique courant sur le marché boursier. Il aide les investisseurs à comprendre les actions de manière plus intuitive en dessinant des données telles que le prix d'ouverture, le prix de clôture, le prix le plus élevé et le prix le plus élevé. prix le plus bas des fluctuations du prix des actions. Cet article vous apprendra comment créer des graphiques en bougies boursières en utilisant PHP et JS, avec des exemples de code spécifiques. 1. Préparation Avant de commencer, nous devons préparer l'environnement suivant : 1. Un serveur exécutant PHP 2. Un navigateur prenant en charge HTML5 et Canvas 3.

Comment utiliser JS et Baidu Maps pour implémenter la fonction de carte thermique de carte Introduction : Avec le développement rapide d'Internet et des appareils mobiles, les cartes sont devenues un scénario d'application courant. En tant que méthode d'affichage visuel, les cartes thermiques peuvent nous aider à comprendre la distribution des données de manière plus intuitive. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de carte thermique de carte et fournit des exemples de code spécifiques. Travail de préparation : Avant de commencer, vous devez préparer les éléments suivants : un compte développeur Baidu, créer une application et obtenir l'AP correspondant

Présentation de la façon d'utiliser JS et Baidu Maps pour implémenter les fonctions de traitement des événements de clic sur la carte : dans le développement Web, il est souvent nécessaire d'utiliser des fonctions de carte pour afficher la localisation géographique et les informations géographiques. Le traitement des événements de clic sur la carte est une partie couramment utilisée et importante de la fonction de carte. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de traitement des événements de clic de la carte et donne des exemples de code spécifiques. Étapes : Importez le fichier API de Baidu Map. Tout d’abord, importez le fichier de l’API Baidu Map dans le fichier HTML. Cela peut être réalisé via le code suivant :

Avec le développement rapide de la finance sur Internet, l'investissement en actions est devenu le choix de plus en plus de personnes. Dans le trading d'actions, les graphiques en bougies sont une méthode d'analyse technique couramment utilisée. Ils peuvent montrer l'évolution des cours des actions et aider les investisseurs à prendre des décisions plus précises. Cet article présentera les compétences de développement de PHP et JS, amènera les lecteurs à comprendre comment dessiner des graphiques en bougies boursières et fournira des exemples de code spécifiques. 1. Comprendre les graphiques en bougies boursières Avant de présenter comment dessiner des graphiques en bougies boursières, nous devons d'abord comprendre ce qu'est un graphique en bougies. Les graphiques en chandeliers ont été développés par les Japonais

Comment utiliser JS et Baidu Maps pour implémenter la fonction de dessin de polygones cartographiques. Dans le développement Web moderne, les applications cartographiques sont devenues l'une des fonctions courantes. Dessiner des polygones sur la carte peut nous aider à marquer des zones spécifiques que les utilisateurs peuvent visualiser et analyser. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de dessin de polygones de carte et fournit des exemples de code spécifiques. Tout d’abord, nous devons introduire l’API Baidu Map. Vous pouvez utiliser le code suivant pour importer le JavaScript de l'API Baidu Map dans un fichier HTML
