Anomalie des „In“-Operators: Warum der Test für „0“ „True“ zurückgibt, wenn das Array nicht „0“ enthält
Der „in Der Operator „ in JavaScript bietet eine Möglichkeit zu überprüfen, ob eine Eigenschaft in einem Objekt oder ein Element in einem Array vorhanden ist. Beim Testen auf ein Element in einem Array könnte man erwarten, dass der „in“-Operator nur dann „true“ zurückgibt, wenn das Array ein Element mit genau diesem Wert enthält. Beim Testen auf „0“ in einem Array verhält sich der „in“-Operator jedoch scheinbar unerwartet.
Betrachten Sie das folgende Beispiel:
var x = [1, 2];
0 in x;
Dies gibt true zurück, auch wenn das Array x nicht den Wert „0“ enthält. Der Grund für dieses scheinbar paradoxe Verhalten liegt in der Natur des „in“-Operators.
Den „in“-Operator verstehen
Der „in“-Operator testet, ob a Eigenschaft oder Element existiert in einem Objekt oder Array. Es ist jedoch wichtig zu betonen, dass der Operator das Vorhandensein der Eigenschaft oder des Elements prüft, nicht unbedingt das Vorhandensein eines bestimmten Werts.
Bei Arrays überprüft der „in“-Operator, ob ein bestimmter Index vorhanden ist existiert innerhalb des Arrays, nicht wenn ein Element mit einem bestimmten Wert an diesem Index vorhanden ist. Dies bedeutet, dass beim Testen auf „0“ in einem Array geprüft wird, ob ein Element am Index 0 vorhanden ist, unabhängig vom Wert dieses Elements.
Anwendung auf das Beispiel
In unserem Beispielarray x testet der Operator „0“, ob ein Element am Index 0 vorhanden ist. Da Arrays in JavaScript nullindiziert sind, ist Index 0 ein gültiger Index für ein Array mit zwei Elementen. Daher gibt der „in“-Operator „true“ zurück, auch wenn im Array kein Element mit dem Wert „0“ vorhanden ist.
Key Takeaway
Der „in „Das Verhalten des Betreibers kann verwirrend sein, wenn man seinen Zweck falsch versteht. Es wird nicht auf das Vorhandensein eines bestimmten Werts geprüft, sondern auf das Vorhandensein eines Elements oder einer Eigenschaft an einem bestimmten Index oder Schlüssel. Dies kann zu unerwarteten Ergebnissen führen, wenn nach Werten wie „0“ gesucht wird, die oft eine besondere Bedeutung als Index oder Schlüsselpositionen haben.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3