Parfois, vous verrez trois signes égaux (===) utilisés pour juger si deux objets sont égaux. la différence entre celui-ci et deux signes égaux (==) ? Pour faire simple, lors de l'utilisation de "==", si les types des deux côtés sont différents, le moteur js les convertira dans le même type puis les comparera, tandis que "===" n'effectuera pas de conversion de type, donc quand les deux côtés n’appartiennent pas au même Type, certainement pas égaux. Par exemple :
var a = 0, b = '0'; alert((a == b) + '--' + (a === b))
Le résultat que vous voyez à ce moment est « vrai-faux ».
=== Règles de jugement
Si les types sont différents, [pas égaux]
Si les deux sont des valeurs numériques , et ont la même valeur, alors [equal]; (!Exception) est que 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)
Si les deux sont des chaînes et que les caractères à chaque position sont les mêmes, alors [égal] ; Sinon [pas égal].
Si les deux valeurs sont vraies, ou si les deux sont fausses, alors [égal].
Si deux valeurs font référence au même objet ou fonction, alors [égal] sinon [pas égal].
Si les deux valeurs sont nulles, ou si les deux ne sont pas définies, alors [égal].
== Règle de jugement :
Si les deux types de valeur sont identiques, effectuez une comparaison ===.
Si deux valeurs sont de types différents, elles peuvent être égales. Effectuez une conversion de type puis comparez selon les règles suivantes :
Si l'un est nul et l'autre indéfini, alors [égal].
Si l'une est une chaîne et l'autre est une valeur numérique, convertissez la chaîne en une valeur numérique, puis comparez.
Si une valeur est vraie, convertissez-la en 1 et comparez ; si une valeur est fausse, convertissez-la en 0 et comparez.
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 sous-jacent, 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. Pour les objets de base non-js, toute autre combinaison de
est [pas égal].
Une attention particulière doit être portée à la conversion du vrai et du faux, par exemple :
alert(true == 1); //ture alert(true == 2); //false, true会转换成number,也就是1,当然 1 不等于 2 //可以使用 !! 来把一个数据类型转换为boolean型 alert(true == !!2) //true,!2 === false !(!=2) = !false = true
De plus, en js, si une variable est utilisée dans un opération logique, alors Lorsqu'une variable n'a pas de valeur initiale ou que sa valeur est 0, -0, null, "", false, undefined ou NaN, sa valeur est fausse. Sinon, sa valeur est vraie.
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!