Maison  >  Article  >  interface Web  >  !=, ==, !==, === résumé d'utilisation

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

php中世界最好的语言
php中世界最好的语言original
2018-04-23 10:15:285043parcourir

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啦

== 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>

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{..}

É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){…}

Écrire 2

if(data.flag==true){…}else{..}

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

L'écriture 3

if(data.flag='true'){…}else{..}

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){…}

Écrire 4

if(data.flag=='true'){…}else{..}

这个才是正确的写法

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

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

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

相信看了本文案例你已经掌握了方法,更多精彩请关注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!

Déclaration:
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