"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi « 0 » est-il évalué comme vrai dans une instruction if mais faux dans une comparaison ?

Pourquoi « 0 » est-il évalué comme vrai dans une instruction if mais faux dans une comparaison ?

Publié le 2024-11-07
Parcourir:947

Why Does

Comprendre les bizarreries de JavaScript : pourquoi "0" est faux mais pas faux dans les instructions if

En JavaScript, l'évaluation d'une valeur dans un contexte logique, comme dans Les instructions if ou les comparaisons booléennes peuvent produire des résultats inattendus. Ce comportement est dû au mécanisme de coercition de type de JavaScript.

JavaScript tape ses valeurs de manière vague, et lorsqu'une valeur de chaîne ou de nombre est utilisée dans un contexte logique, il subit une coercition de type pour la convertir en valeur booléenne. Dans cette conversion, les chaînes non vides et les nombres non nuls sont évalués comme vrai, tandis que les chaînes vides et les nombres nuls sont évalués comme faux.

Par conséquent, lorsque vous comparez « 0 » à faux en utilisant == ou === , il renvoie true car la coercition de type convertit à la fois "0" (une chaîne non vide) et false (une valeur de type zéro) en true.

Cependant, lors de l'utilisation d'une instruction if, "0" seul évalue à vrai. En effet, si les instructions utilisent en interne une valeur booléenne forcée, qui renvoie vrai pour les chaînes non vides.

Pour éviter toute ambiguïté, il est recommandé d'utiliser l'opérateur d'égalité stricte === lors de la comparaison de valeurs primitives, comme il effectue une comparaison sans contrainte de type. Cela garantit que « 0 » est correctement évalué comme faux lorsque cela est nécessaire.

Référez-vous aux tableaux ci-joints pour une représentation concise du comportement véridique/faux de JavaScript pour différents types de données. N'oubliez pas que pour de véritables comparaisons d'égalité, optez toujours pour ===.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3