Maison  >  Article  >  interface Web  >  Pourquoi \"0 in [1, 2]\" renvoie-t-il True en JavaScript ?

Pourquoi \"0 in [1, 2]\" renvoie-t-il True en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 07:05:27712parcourir

Why Does

Anomalie de l'opérateur "In" : pourquoi le test renvoie vrai pour "0" si le tableau ne contient pas "0"

Le "in L'opérateur " en JavaScript fournit un moyen de vérifier si une propriété existe dans un objet ou si un élément existe dans un tableau. Lors du test d'un élément dans un tableau, on peut s'attendre à ce que l'opérateur "in" renvoie vrai uniquement si le tableau contient un élément avec cette valeur exacte. Cependant, dans le cas du test de "0" dans un tableau, l'opérateur "in" se comporte apparemment de manière inattendue.

Considérez l'exemple suivant :

<code class="javascript">var x = [1, 2];
0 in x;</code>

Cela renvoie vrai, même si le tableau x ne contient pas la valeur "0". La raison de ce comportement apparemment paradoxal réside dans la nature de l'opérateur "in".

Comprendre l'opérateur "in"

L'opérateur "in" teste si un une propriété ou un élément existe dans un objet ou un tableau. Cependant, il est important de souligner que l'opérateur vérifie l'existence de la propriété ou de l'élément, pas nécessairement la présence d'une valeur spécifique.

Dans le cas des tableaux, l'opérateur "in" vérifie si un index particulier existe dans le tableau, pas si un élément avec une valeur spécifique est présent à cet index. Cela signifie que tester "0" dans un tableau vérifie si un élément existe à l'index 0, quelle que soit la valeur de cet élément.

Application à l'exemple

Dans notre exemple de tableau x, l'opérateur "0" teste si un élément existe à l'index 0. Puisque les tableaux sont indexés à zéro en JavaScript, l'index 0 est un index valide pour un tableau avec deux éléments. Par conséquent, l'opérateur "in" renvoie vrai, même s'il n'y a aucun élément avec la valeur "0" présent dans le tableau.

À retenir

Le "in " Le comportement de l'opérateur peut prêter à confusion si l'on comprend mal son objectif. Il ne teste pas la présence d'une valeur spécifique mais plutôt l'existence d'un élément ou d'une propriété à un index ou une clé particulière. Cela peut conduire à des résultats inattendus lors de la vérification de valeurs telles que « 0 », qui ont souvent une signification particulière en tant qu'index ou positions clés.

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