Dieses Mal zeige ich Ihnen, wie Sie Arrays in der Webentwicklung erkennen und welche Vorsichtsmaßnahmen für die Erkennung von Arrays in der Webentwicklung gelten. Hier sind praktische Fälle, werfen wir einen Blick darauf.
Eines der ältesten domänenübergreifenden Probleme in JS ist das Hin- und Herleiten von Arrays zwischen Frames. Entwickler stellten schnell fest, dass „instanceof Array“ in diesem Szenario nicht immer die richtigen Ergebnisse lieferte. Wie oben erwähnt, verfügt jeder Frame über einen eigenen Array-Konstruktor, sodass Instanzen in einem Frame in einem anderen Frame nicht erkannt werden. Douglas Crockford empfahl zuerst die Verwendung der „Duck Typing“-Schnittstelle (Duck Typing). „Duck Typing“ ist ein Konzept, das zuerst vom Schriftsteller James Whitcomb Riley vorgeschlagen wurde, das heißt, „ein Vogel, der wie eine Ente läuft, schwimmt und quakt“. eine Ente.“ Konzentrieren Sie sich im Wesentlichen auf „was das Objekt tun kann“ und nicht darauf, „was das Objekt ist“.
// 采用鸭式辨型的方法检测数组function isArray(value) { return typeof value.sort === "function"; }
Diese Erkennungsmethode basiert auf der Tatsache, dass Arrays die einzigen Objekte sind, die eine sort()-Methode enthalten. Wenn der an isArray() übergebene Parameter ein Objekt ist, das die Methode sort() enthält, wird natürlich auch true zurückgegeben.
Es wurde viel darüber geforscht, wie man Array-Typen in JS erkennt, und schließlich hat Juriy Zaytsev (auch bekannt als Kangax) eine elegante Lösung gefunden.
function isArray(value) { return Object.prototype.toString.call(value) === "[object Array]"; }
Kangax hat herausgefunden, dass der Aufruf der integrierten toString()-Methode für einen Wert in allen Browsern das Standardergebnis string zurückgibt. Bei Arrays lautet die zurückgegebene Zeichenfolge „[object Array]“, unabhängig vom Frame, in dem die Array-Instanz erstellt wurde. Die von Kangax bereitgestellte Lösung erfreute sich schnell großer Beliebtheit und wurde von den meisten JSKlassenbibliotheken übernommen.
Diese Methode ist oft sehr nützlich, wenn integrierte Objekte identifiziert werden. Bitte verwenden Sie diese Methode jedoch nicht für benutzerdefinierte Objekte. Wenn Sie diese Methode beispielsweise mit dem integrierten JSON-Objekt verwenden, wird „[Objekt JSON]“ zurückgegeben.
Seitdem hat ECMAScript5 Array.isArray() offiziell in JS eingeführt. Der einzige Zweck besteht darin, genau zu erkennen, ob ein Wert ein Array ist. Wie die Funktion von Kangax kann auch Array.isArray() über Frames hinweg übergebene Werte erkennen, daher implementieren viele JS-Bibliotheken diese Methode derzeit auf ähnliche Weise.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie auf der chinesischen PHP-Website Andere verwandte Artikel!
Empfohlene Lektüre:
Was sind die Regeln für die Ereignisverarbeitung in der Webentwicklung?
Warum müssen Sie die Verwendung globaler Variablen im Web vermeiden? Entwicklung
Das obige ist der detaillierte Inhalt vonSo erkennen Sie Arrays in der Webentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!