JavaScript ES6: Spread-Operator und Rest-Parameter

Spread-Operator

Der Spread-Operator „verteilt“ die Werte in einer iterierbaren (Arrays, Strings) über null oder mehr Argumente oder Elemente. Ich werde später genau erklären, was das bedeutet. Aber zuerst schauen wir uns an, wie wir zwei Arrays kombinieren könnten:

Diese Methode funktioniert und macht genau das, was wir wollen: Nehmen Sie arr2 und kleben Sie es auf das Ende von arr1. Dies erfordert jedoch, dass wir uns an die Concat-Methode erinnern. Es wäre schöner, so etwas tun zu können: . Folgendes passiert, wenn wir das versuchen:

Jetzt haben wir ein verschachteltes Array. Wir könnten eine for-Schleife verwenden, aber das ist viel Code, um eine relativ einfache Aufgabe zu erfüllen. Dank ES6 haben wir jetzt eine einfachere Möglichkeit, zwei Arrays zu kombinieren: den Spread-Operator.

Wie oben erwähnt, nimmt der Spread-Operator ein Array (oder ein beliebiges iterables) und verteilt seine Werte. Schauen wir uns an, wie es funktioniert:

Das ist viel einfacher! Der Spread-Operator (…) nimmt die Werte von arr1 und verteilt sie über arr2. Wir könnten das obige Beispiel auch so schreiben:

Der Spread-Operator kann auch in einem Funktionsaufruf verwendet werden. Angenommen, wir haben eine Funktion, die eine Reihe von Parametern akzeptiert, und die Parameter, die wir übergeben möchten, werden in einem Array gespeichert. Wie können wir die Funktion aufrufen und das Array von Parametern übergeben? So würden wir das vor ES6 machen:

Auch hier wäre es schön, so etwas tun zu können: mySum(params) . Folgendes passiert, wenn wir das versuchen:

Mit dem Spread-Operator können wir das obige Beispiel wie folgt schreiben:

Wie Sie sehen können, nimmt der Spread-Operator das Array von Parametern und verteilt sie über die Argumente im Funktionsaufruf. Aber was ist, wenn wir unsere Funktion benötigen, um mit einer unbekannten Anzahl von Parametern arbeiten zu können? Hier kommt der Rest-Parameter ins Spiel.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.