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 valeurssont === é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中文网其它相关文章!
推荐阅读:
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!