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
Libérer: 2024-11-04 22:08:02
original
515 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal