Maison > interface Web > js tutoriel > le corps du texte

!=, ==, !==, === résumé d'utilisation

php中世界最好的语言
Libérer: 2018-04-23 10:15:28
original
5061 Les gens l'ont consulté

Cette fois je vous apporte un résumé de l'utilisation de !=, ==, !==, ===, et quelles sont les précautions lors de l'utilisation de !=, ==, !== , === , ce qui suit est un cas pratique, jetons un coup d'œil.

var num = 1;  
var str = '1'; 
var test = 1; 
test == num  //true 相同类型 相同值 
test === num //true 相同类型 相同值 
test !== num //false test与num类型相同,其值也相同, 非运算肯定是false 
num == str  //true  把str转换为数字,检查其是否相等。 
num != str  //false == 的 非运算 
num === str //false 类型不同,直接返回false 
num !== str //true  num 与 str类型不同 意味着其两者不等 非运算自然是true啦
Copier après la connexion

== et != Si les types sont différents, essayez d'abord de convertir le type, puis comparez les valeurs et enfin renvoyez le résultat de la comparaison des valeurs.

et

=== et !== ne compareront leurs valeurs que si elles sont du même type.

Tout d'abord, == l'égalité est égale, === l'identité est égale.

==, lorsque les types de valeur des deux côtés sont différents, la conversion de type doit d'abord être effectuée, puis comparée.

===, aucune conversion de type n'est effectuée et les différents types doivent être différents.

Les éléments suivants sont expliqués séparément :

Parlons d'abord de ===, c'est relativement simple. Les règles suivantes sont utilisées pour déterminer si deux valeurs​​sont === égales :

1. Si les types sont différents, [pas égaux]

2. valeurs et sont la même valeur A, alors [égal] (sauf !) si au moins l'un d'eux est NaN, alors [pas égal]. (Pour déterminer si une valeur est NaN, vous ne pouvez utiliser que isNaN() pour déterminer)

3. Si les deux sont des chaînes et que les caractères à chaque position sont les mêmes, alors [ égal ]; sinon [pas égal].

4. Si les deux valeurs sont vraies, ou les deux sont fausses, alors [égal].

5. Si les deux valeurs font référence au même objet ou fonction, alors [égal] sinon [pas égal].

6. Si les deux valeurs sont nulles, ou si les deux ne sont pas définies, alors [égal].

Parlons de ==, selon les règles suivantes :

1 Si les deux types de valeur sont identiques, effectuez ==. = comparaison.

2. Si deux types de valeurs sont différents, ils peuvent être égaux. Effectuez une conversion de type puis comparez selon les règles suivantes :

a Si l'un est nul et l'autre n'est pas défini, alors [equal].

b. Si l'une est une chaîne et l'autre est une valeur numérique, convertissez la chaîne en valeur numérique, puis comparez.

c. Si une valeur est vraie, convertissez-la en 1 et comparez ; si une valeur est fausse, convertissez-la en 0 et comparez.

d. Si l'un est un objet et l'autre est une valeur numérique ou une chaîne, convertissez l'objet en une valeur du type de base puis comparez. L'objet est converti en type de base à l'aide de sa méthode toString ou valueOf. Les classes intégrées de base de JS essaieront valueOf avant toString ; l'exception est Date, qui utilise la conversion toString. Les objets de base non-js, tels que (c'est plus gênant, je ne comprends pas très bien)

e, ou toute autre combinaison, ne sont [pas égaux].

Exemple :

"1" == true

Les types ne sont pas égaux, true sera d'abord converti à la valeur 1, et maintenant il devient "1" == 1, puis convertissez "1" en 1, comparez 1 == 1, é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

=== est utilisé pour un jugement de comparaison strict

var data = ({"val":"7","flag":"true"});
<FONT face=Verdana></FONT>
Copier après la connexion

Comment juger la valeur du drapeau ci-dessous ?

Parce que vrai avec des guillemets doubles == est présumé être la chaîne vraie

Si sans guillemets doubles==== c'est une valeur booléenne vraie

C'est très important , je ne l'ai jamais eu auparavant Comprendre ça

Écrire 1

if(data.flag=true){…}else{..}
Copier après la connexion

Écrire comme ceci est correct, peu importe la façon dont vous l'écrivez , vous n'obtiendrez pas du tout la valeur de else, pourquoi ? Cette façon d'écrire est équivalente à

if(true){…}
Copier après la connexion
Copier après la connexion

Écrire 2

if(data.flag==true){…}else{..}
Copier après la connexion

Il n'existe pas une telle façon d'écrire

L'écriture 3

if(data.flag='true'){…}else{..}
Copier après la connexion

est correcte, peu importe la façon dont vous l'écrivez, vous Je ne peux pas du tout obtenir la valeur de else. La raison est que cette façon d'écrire est équivalente à

if(true){…}
Copier après la connexion
Copier après la connexion

Écrire 4

if(data.flag=='true'){…}else{..}
Copier après la connexion

这个才是正确的写法

“=”:这个表示赋值,不是表示运算符

“==”:表示等于(值)

“===”:表示全等于(类型和值)

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

JS使用技巧整理

JS发送json格式POST请求实现步奏

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