Maison >interface Web >js tutoriel >Pourquoi « 0 » agit-il comme faux dans les comparaisons mais vrai dans les instructions « if » en JavaScript ?

Pourquoi « 0 » agit-il comme faux dans les comparaisons mais vrai dans les instructions « if » en JavaScript ?

DDD
DDDoriginal
2024-11-04 22:08:02464parcourir

Why Does

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!

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