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 :
var x = [1, 2];
0 in x;
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.
Key Takeaway
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.
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