Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 7794|Antwort: 0

[JavaScript] es6 Erweiterungsoperator Drei Punkte (...) )

[Link kopieren]
Veröffentlicht am 19.06.2020 12:31:11 | | |
Bedeutung

Der Expansionsoperator (Spread) besteht aus drei Punkten (...) )。 Es ist wie das Inverse eines Ruheparameters, das ein Array in eine kommagetrennte Folge von Parametern verwandelt.



Dieser Operator wird hauptsächlich für Funktionsaufrufe verwendet.



Im obigen Code ist array.push(...) Items) und add(...) Nummern), die beide Funktionen aufrufen, und beide verwenden Erweiterungsoperatoren. Dieser Operator wandelt ein Array in eine Folge von Parametern um.
Erweiterungsoperatoren können in Kombination mit Normalfunktionsparametern verwendet werden, was sehr flexibel ist.



Anwendung der Methode für alternative Arrays

Da der Erweiterungsoperator das Array erweitern kann, ist es nicht nötig, die Appate-Methode zu verwenden, um das Array in ein Argument für die Funktion umzuwandeln.



Hier ist ein praktisches Beispiel für einen Erweiterungsoperator, der die Apply-Methode ersetzt und Math.max Methode anwendet, um das Schreiben des größten Elements eines Arrays zu vereinfachen.



Der obige Code besagt, dass JavaScript, da es keine Funktion gibt, um das größte Element eines Arrays zu finden, man Math.max Funktion nur anwenden kann, um das Array in eine Parameterfolge umzuwandeln und dann den maximalen Wert zu finden. Mit dem Extension-Operator können Sie Math.max direkt verwenden.
Ein weiteres Beispiel ist das Hinzufügen eines Arrays zum Ende eines anderen Arrays über die Push-Funktion.



In der ES5-Schreibmethode des obigen Codes können die Parameter der Push-Methode keine Arrays sein, daher müssen wir die Push-Methode flexibel durch die Apple-Methode verwenden. Mit dem Erweiterungsoperator kann das Array direkt in die Push-Methode übergeben werden.
Hier ist ein weiteres Beispiel.



Erweiterung der Anwendung von Operatoren

(1) Arrays zusammenführen

Der Erweiterungsoperator bietet eine neue Möglichkeit, die Zahlenkombination zu schreiben.



(2) kombiniert mit dekonstruierter Zuweisung

Erweiterungsoperatoren können mit dekonstruierten Zuweisungen kombiniert werden, um Arrays zu erzeugen.



Wenn Sie den Erweiterungsoperator für die Array-Zuweisung verwenden, kann dieser nur an der letzten Ziffer des Parameters platziert werden, sonst wird ein Fehler gemeldet.



(3) Der Rückspruchswert der Funktion

JavaScript-Funktionen können nur einen Wert zurückgeben, und wenn mehrere Werte zurückgegeben werden müssen, nur Arrays oder Objekte. Erweiterungsoperatoren bieten eine Lösung, um dieses Problem zu lösen.



Der obige Code nimmt eine Datenzeile aus der Datenbank, erweitert den Operator und übergibt ihn direkt an den Konstruktor Date.

(4) Saite

Erweiterungsoperatoren können Strings auch in reelle Arrays umwandeln.



Die oben genannte Schrift hat einen wichtigen Vorteil, nämlich dass sie 32-Bit-Unicode-Zeichen korrekt erkennen kann.



Der erste Weg, den oben genannten Code zu schreiben, ist JavaScript, erkennt 32-Bit-Unicode-Zeichen als 2 Zeichen, und es gibt kein Problem mit Erweiterungsoperatoren. Die Funktion, die die Länge der Zeichenkette korrekt zurückgibt, kann also so geschrieben werden:



Dies ist das Problem für jede Funktion, bei der 32-Bit-Unicode-Zeichen manipuliert werden muss. Daher ist es am besten, sie alle mit Erweiterungsoperatoren umzuschreiben.



Im obigen Code ist die String-Reverse-Operation fehlerhaft, wenn Sie den Extension-Operator nicht verwenden.

(5) Objekte, die die Iterator-Schnittstelle implementieren

Jedes Objekt in der Iterator-Schnittstelle kann mit einem Erweiterungsoperator in ein echtes Array umgewandelt werden.



Im obigen Code gibt die querySelectorAll-Methode ein nodeList-Objekt zurück. Es ist kein Array, sondern ein arrayartiges Objekt. In diesem Fall kann der Erweiterungsoperator es in ein echtes Array umwandeln, weil das NodeList-Objekt die Iterator-Schnittstelle implementiert.
Für diese arrayartigen Objekte, die keine Iterator-Schnittstelle haben, kann der Erweiterungsoperator sie nicht in ein echtes Array umwandeln.



Im obigen Code ist ArrayLike ein arrayartiges Objekt, aber ohne die Iterator-Schnittstelle bereitzustellen, meldet der Erweiterungsoperator einen Fehler. In diesem Fall kannst du die Array.from-Methode verwenden, um arrayLike stattdessen in ein reales Array umzuwandeln.

(6) Map- und Set-Strukturen, Generatorfunktionen

Der Erweiterungsoperator ruft intern die Iterator-Schnittstelle der Datenstruktur auf, sodass jedes Objekt mit einer Iterator-Schnittstelle einen Erweiterungsoperator wie eine Map-Struktur verwenden kann.



Wenn die Generator-Funktion ausgeführt wird, gibt sie ein Traverser-Objekt zurück, sodass auch Erweiterungsoperatoren verwendet werden können.



Im obigen Code ist die Variable go eine Generator-Funktion, und nach der Ausführung gibt sie ein Traverser-Objekt zurück; das Ausführen eines Erweiterungsoperators auf diesem Traversal-Objekt wandelt die Werte aus dem internen Durchlauf in ein Array um.
Wenn Sie einen Erweiterungsoperator für ein Objekt ohne Iterator-Schnittstelle verwenden, wird ein Fehler gemeldet.





Vorhergehend:Implementierung von Vue+ElementUI
Nächster:Problem der Veröffentlichung des Angular-Projekts
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com