Maison > interface Web > js tutoriel > Pourquoi un tableau vide est-il évalué à la fois comme vrai et faux en JavaScript ?

Pourquoi un tableau vide est-il évalué à la fois comme vrai et faux en JavaScript ?

DDD
Libérer: 2024-11-07 17:59:03
original
545 Les gens l'ont consulté

Why Does an Empty Array Evaluate to Both True and False in JavaScript?

Dévoilement du paradoxe : les tableaux vides dans la zone crépusculaire du booléen

Les tableaux vides, apparemment énigmatiques, présentent une dualité particulière, évaluant simultanément à vrai et faux. Ce comportement intrigant découle de la conversion implicite qui se déroule au sein des opérateurs d'égalité.

Dans l'extrait de code fourni, nous sommes témoins de cette dualité :

var arr = [];
console.log('Array:', arr);

if (arr) console.log("It's true!");
if (arr == false) console.log("It's false!");
if (arr && arr == false) console.log("...what??");
Copier après la connexion

Pour déchiffrer cette énigme, nous plongeons dans le mécanique de l’opérateur d’égalité. Lorsqu'il est utilisé avec des objets (dans ce cas, les tableaux sont des objets), il vérifie leur présence. Ainsi, if (arr) renvoie vrai car un tableau vide est un objet valide.

Cependant, les choses deviennent plus troubles lorsque l'on compare des tableaux à de fausses primitives à l'aide de l'opérateur ==. Cette comparaison implique la conversion du tableau en chaîne via arr.toString(). La chaîne vide résultante, notée "", est considérée comme une valeur fausse en JavaScript.

Par conséquent, if (arr == false) est évalué comme vrai car la chaîne vide est égale à la primitive fausse dans ce contexte. Cette contradiction apparente découle de la conversion de type implicite effectuée par JavaScript.

Pour résoudre la confusion, il faut opter pour l'opérateur triple égalité (===), qui considère à la fois l'égalité de valeur et de type. Cela garantit qu'un tableau vide n'est jamais considéré comme égal à faux.

En résumé, la dichotomie apparente selon laquelle les tableaux vides sont à la fois vrais et faux découle des différentes évaluations effectuées par les opérateurs d'égalité et d'égalité stricte, mettant en évidence le subtil complexités de la gestion des types JavaScript.

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!

source:php.cn
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