Heim >Web-Frontend >js-Tutorial >JavaScript verstehen, Restparameter in Funktionen
JavaScript wird in unserem Studium oder unserer Arbeit involviert sein, daher müssen wir auch JavaScript verstehen. Apropos Restparameter, sie sind ein großer Teil der Funktion. Und die Funktionen ändern sich ständig. Dieser Artikel wird Ihnen helfen, JavaScript zu verstehen und zu beherrschen.
JavaScript-Funktionen können eine beliebige Anzahl von Parametern annehmen. Im Gegensatz zu anderen Sprachen wie C# und Java können Sie beim Aufruf einer JavaScript-Funktion beliebig viele Parameter übergeben. JavaScript-Funktionen erlauben eine unbekannte Anzahl von Funktionsparametern. Vor ECMAScript 6 verfügte JavaScript über eine Variable für den Zugriff auf diese unbekannte oder variable Anzahl von Parametern, bei der es sich um ein Array-ähnliches Objekt und nicht um ein Array handelte. Betrachten Sie den folgenden Code, um die Argumentvariable zu verstehen:
function add(){ var result = 0; for(let i=0;i<arguments.length;i++){ result = result + arguments[i]; } return result; } var r = add(6,9,3,2); console.log(r); var t = add(7,56,9); console.log(t);
Wie Sie sehen können, wird das Argumentobjekt verwendet, um auf unbekannte oder variable Funktionsparameter zuzugreifen. Obwohl arguments das Längenattribut und eckige Klammern verwendet, handelt es sich nicht um ein echtes JavaScript-Array. Sie können keine anderen JavaScript-Array-Methoden wie Pop, Push, Slice usw. für das Argumentobjekt verwenden. Einige Probleme bei der Verwendung von Argumenten sind:
Das JavaScript-Funktionsargumentobjekt ist kein echtes JavaScript-Array, daher können Sie keine anderen Array-Methoden wie Pop, Push, Slice usw. verwenden.
Es ist schwierig, auf das Argumentobjekt einer externen Funktion in einer internen Funktion zuzugreifen. Um darauf zuzugreifen, müssen Sie die Argumentfunktion der äußeren Funktion in einer Variablen zuweisen und sie dann in der inneren Funktion verwenden.
Wenn Sie das Argumentobjekt als Array verwenden möchten, müssen Sie es manuell über Aarry.prototype.slice konvertieren.
ECMAScript 6 führt eine neue Funktion ein: Rest-Parameter, die eine unbekannte Anzahl von Parametern als Array in einer Funktion darstellen. Es stellt nicht nur zusätzliche Parameter als Arrays dar, sondern löst auch viele Probleme mit Argumentobjekten. Schreiben Sie die obige Add-Funktion mit dem Rest-Parameter neu.
function add(...theArgs){ var result = 0; for(let i=0;i<theArgs.length;i++){ result = result + theArgs[i]; } return result; } var r = add(6,9,3,2); console.log(r); var t = add(7,56,9); console.log(t);
Sie können Restparameter als ... theArgs oder ... args definieren. Wenn dem zuletzt genannten Funktionsparameter ... (drei Punkte) vorangestellt wird, wird er zum restlichen Parameter der Funktion. Der restliche Parameter einer JavaScript-Funktion ist ein reines JavaScript-Array. Im obigen Code ist ...theArgs der restliche Parameter der Funktion add, da es sich um den einzigen benannten Parameter handelt und ihm außerdem ... (drei Punkte) vorangestellt ist. Da der Rest-Parameter ein JavaScript-Array ist, können Sie Operationen wie Push, Pop usw. für den Rest-Parameter theArgs ausführen, wie im folgenden Code gezeigt:
function add(...theArgs){ theArgs.push(10); var result = 0; for(let i=0;i<theArgs.length;i++){ result = result + theArgs[i]; } var lastItem = theArgs.pop(); console.log(lastItem); return result; }
Der Rest-Parameter der JavaScript-Funktion kann auch mit anderen Parametern arbeiten. Wenn Sie bestimmte Parameter nicht in das restliche Parameterarray aufnehmen möchten, müssen Sie möglicherweise andere benannte Parameter in der Funktion verwenden. Betrachten Sie den folgenden Codeblock:
function add(num1, num2, ...theArgs){ console.log(num1); console.log(num2); console.log(theArgs.length); } var r = add(6,9,3,2); var t = add(7,56,9);
Für den ersten Funktionsaufruf werden 6 und 9 jeweils Num1 und Num2 zugewiesen. Für den zweiten Funktionsaufruf werden 7 und 56 num1 und num2 zugewiesen. Der Parameter, der den dritten Parameter startet, wird dem restlichen Parameterarray zugewiesen. Beachten Sie, dass die ersten beiden Parameter nicht Teil des restlichen Parameterarrays sind. Wenn Sie also planen, alle Werte in Restparameter aufzunehmen, sollten Sie diese von Anfang an als durch Kommas getrennte benannte Parameter definieren. Der unten angegebene Code führt zu einem Fehler:
function add(num1, ...theArgs,num2){ console.log(num1); console.log(num2); console.log(theArgs.length); }
Im obigen Code ist der rest-Parameter nicht der letzte Parameter, sodass JavaScript einen Fehler auslöst. Der Restparameter muss der letzte Formalparameter sein.
JavaScript ermöglicht es Ihnen, Restparameter zu zerstören, was bedeutet, dass Sie Restvariablendaten in verschiedene Variablennamen Namen entpacken können. Schauen Sie sich bitte den folgenden Code an:
function add(...[a,b,c]){ return a+b+c; } var r = add(6); console.log(r); var t = add(7,56,9); console.log(t);
Der erste Funktionsaufruf weist a = 6, b = undefiniert, c = undefiniert zu, der zweite Funktionsaufruf weist a = 7, b = 56, c= zu 9. In diesem Beispiel ignoriert die Funktion alle zusätzlich übergebenen Argumente.
Der Rest-Parameter von JavaScript-Funktionen ist eine enorme Verbesserung gegenüber dem Argumentobjekt , das das unbekannte Argument der Funktion verwendet. Es handelt sich um ein reines JavaScript-Array. Daher können Sie alle Array-Methoden darauf verwenden. Sie können Restvariablendaten in benannte Variablen entpacken. Sie können rest-Parametern einen beliebigen Namen geben, was eine weitere wesentliche Verbesserung gegenüber der Verwendung des Schlüsselworts arguments darstellt.
Im nächsten Artikel der Reihe „JavaScript verstehen“ stellen wir die Standardparameter in JavaScript-Funktionen vor, also bleiben Sie dran.
Das Verständnis von JavaScript, dem Rest-Parameter in der Funktion, endet hier. Begrüßen Sie alle zum gemeinsamen Lernen und Diskutieren:
Verwandte Lektüre:
Das obige ist der detaillierte Inhalt vonJavaScript verstehen, Restparameter in Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!