Maison > Article > interface Web > Pourquoi « 0 » est-il égal à « Faux » en JavaScript ?
Comprendre l'égalité en JavaScript : l'énigme du "0" et du "Faux"
En JavaScript, l'opérateur d'égalité (==) convertit opérandes à un type commun avant comparaison, ce qui peut conduire à des résultats inattendus. Une énigme déroutante surgit lorsque l'on teste "0" avec false en utilisant ==.
Considérez le code suivant :
"0" == false // true false == "0" // true
Ces expressions sont évaluées à true, ce qui implique que "0" est équivalent à false . Cependant, cela contredit le comportement de if("0"), qui affiche "ha":
if("0") console.log("ha") // prints "ha"
Pour percer ce mystère, nous devons approfondir le concept de valeurs "véridiques" et "fausses". en JavaScript. L'opérateur == contraint "0" à une valeur booléenne, ce qui est faux. Cependant, l'instruction if interprète les chaînes non vides comme des valeurs véridiques.
Pour éviter ces incohérences, il est crucial d'utiliser l'opérateur d'égalité stricte (===) lors du test d'équivalence. === effectue une comparaison directe des valeurs sans coercition de type.
"0" === false // false
Le tableau ci-dessous illustre les valeurs vraies et fausses en JavaScript :
Value | Truthy | Falsey |
---|---|---|
0 | Falsey | True |
"0" | Truthy | False |
"" | Falsey | True |
N'oubliez pas que == peut conduire à résultats inattendus lors de la comparaison de valeurs de différents types. Optez toujours pour === pour des comparaisons précises et sans ambiguïté.
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!