Verbreiten Syntax vs Rest-Parameter in ES2015 / ES6
Ich bin verwirrt über die Verbreitung syntax und rest-parameter in ES2015. Kann jemand erklären den Unterschied zwischen Ihnen mit der richtigen Beispiele?
- Man ist auf der call-Seite, der andere ist in der parameter-Liste. Oder für arrays, ist in der wörtlichen, die andere ist in einem destructuring Ausdruck.
- Kann jemand erklären, warum es downvoted?
- Wahrscheinlich, weil keine Forschung aufgezeigt Aufwand. Auch, wo hast du diese Begriffe, wo/wie wurden Sie so schlecht erklärt, dass Sie nicht sagen, der Unterschied?
- Danke @Bergi, aber ich war in Eile.
- persönliche Meinung, Ihre Kommentare bieten mehr Einblicke als die akzeptierte Antwort, die einfach unter Angabe
expanding
vscollapsing
nicht sagen, Ihre Nutzung Fall, danke 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bei der Verwendung zu verbreiten, Sie bauen eine einzelne variable, die in mehr:
JS:
Bei der Verwendung von rest-Argumente, Sie brechen alle restlichen Argumente einer Funktion in einem array:
JS:
const [a, b, ...c] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
?rest
. Lesen Sie es alsa
,b
und der rest des Arrays.ES6 verfügt über eine neue Funktion, drei Punkte
...
Hier ist, wie können wir diese Punkte:
Hier
...m
ist ein Sammler, er sammelt die übrigen Parameter. Intern, wenn wir schreiben:var [c, ...m] = [1,2,3,4,5];
JavaScript hat folgenden
Hier
...params
breitet sich so assing alle seine Elemente zuother
Intern javaScript hat folgenden
Hoffe, das hilft.
Zusammenfassung:
In javascript die
...
überlastet ist. Es führt die verschiedenen Operationen basiert auf, wo der operator wird verwendet:Beispiel:
Rest-parameter syntax:
JS:
Verbreiten syntax:
JS:
Im Grunde wie in Python:
Hinzugefügt ES6 diese drei Punkte
...
hat zwei Bedeutungen, zu Verbreiten Betreiber und Rest-parameterSpread-operator: verwenden Sie die drei Punkte zu erweitern
iterables
durchiterables
ich meinearrays
,string
usw. Als Argumente. Zum BeispielMath.max()
Funktion erwarten, eine unbestimmte Anzahl von Argumenten, so dass Sie verwenden können, Spread-operator zu erweitern Elemente als Argumente aufMath.max()
Funktion. Hier ein Beispiel aus mdnEin weiterer Anwendungsfall ist das hinzufügen, zum Beispiel mit diesem array
Können Sie es hinzufügen, zu einem anderen array
Dann
favoritesVideoGames
Wert istÜber Rest-parameter, hier die MDN definition
Bedeutet dies, dass Sie Verpacken können viele Elemente in einem einzigen element
Hier ein Beispiel aus MDN
Ich in der Regel verwirrt durch diese drei Punkte, diese Abbildung von @stephaniecodes hilft mir, mich zu erinnern Ihrer Logik. Ich erwähnen, dass ich fand seine inspiration aus dieser Abbildung um diese Frage zu beantworten.
Ich hoffe, es ist nützlich.
Javascript drei Punkten (
...
) Betreiber kann auf zwei verschiedene Arten verwendet:JS:
JS:
Beachten, dass der spread-operator können Sie das erste element, aber die rest-parameter muss der Letzte sein, der sammeln, um die restlichen Elemente .