Maison >interface Web >js tutoriel >Pourquoi « 0 » agit-il comme faux dans les comparaisons mais vrai dans les instructions « if » en JavaScript ?
Démêler le paradoxe de JavaScript : pourquoi "0" est faux en comparaison mais faux dans les instructions If
En JavaScript, le comportement de la primitive " 0" pose un casse-tête aux développeurs. Alors que les opérateurs logiques tels que "==" assimilent "0" à faux, "0" se comporte comme véridique dans les conditions "if".
Paradoxe de comparaison
Le code ci-dessous démontre le paradoxe de comparaison :
<code class="js">"0" == false // true false == "0" // true</code>
Dans ce scénario, JavaScript contraint « 0 » à faux en fonction de ses valeurs « véridique » et « fausse ». Des valeurs telles que "0", "NaN", "null" et indéfini sont considérées comme fausses, tandis que d'autres sont véridiques.
Si anomalie de déclaration
Cependant, la situation devient déroutant lorsque « 0 » est utilisé dans une instruction « if » :
<code class="js">if ("0") console.log("ha") // ha</code>
Bien qu'il soit contraint à faux dans les comparaisons, « 0 » est évalué à vrai dans les conditions « si ». En effet, les instructions "if" en JavaScript traitent toutes les chaînes non vides, y compris "0", comme véridiques.
Tables de vérité
Pour comprendre ce comportement, nous peut faire référence aux tables de véracité JavaScript. Ils catégorisent les valeurs en fonction de leur statut véridique/faux dans les conditions de comparaison (==) et de déclaration « si » (véridique) :
Value | Comparison | If Statement |
---|---|---|
True/Truthy | true | true |
False/Falsy | false | false |
"0" (Falsy) | false | true |
Conclusion
Le paradoxe de "0" en JavaScript découle des différentes interprétations de la véracité en comparaison (==) et des déclarations "if" (véridique). Il s'agit d'une distinction subtile mais cruciale dont les développeurs doivent être conscients pour éviter des résultats inattendus. À titre de bonne pratique, il est conseillé d'utiliser une égalité stricte (===) lors des comparaisons pour garantir des évaluations précises.
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!