Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

JavaScript Grundkurs

Flexible Anzahl an Funktionsargumenten und arguments

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Normalerweise geben Sie beim Aufruf einer Funktion die gewünschte Anzahl Parameter an. Deren Namen sind dann lokale Variablen in der Funktion. Es gibt in JavaScript jedoch zusätzlich, innerhalb jeder Funktion, eine spezielle implizite Variable arguments.
03:16

Transkript

Sie sehen hier eine Webseite, in der ich eine Funktion mit drei Parametern deklariert habe. Das hieße, wenn ich beim Aufruf hier drei numerische Werte oder Strings angebe, dann wird hier eine arithmetische Addition stattfinden oder eine String-Verkettung. Nur, was passiert, wenn ich hier weniger Parameter angebe? Schauen wir uns das mal an. Sie erhalten als Ausgabe "NaN", "not a number". Dass das nicht funktioniert, ist nicht die Aussage hier. Es funktioniert. Die Aussage ist eine andere. Das bedeutet, dass bei diesem Aufruf der Parameter den Wert eins hat. B hat aber den Wert "Undefined" und C hat auch den Wert "Undefined". Und dann mach' ich: Eins plus Undefined ist "not a number". Dann nochmal Undefined drauf addiert. Grundsätzlich spielt beim Aufruf einer Funktion die Anzahl der übergebenen Parameter keine Rolle. JavaScript ist ja nicht polymorph, wobei die Anzahl der Parameter wirklich auch eine Bedeutung hätte. Dennoch ist so ein Verhalten in vielen anderen Sprachen nicht vorhanden. Ich kann auch genauso mehr Parameter angeben, als eigentlich in der Deklaration vorgesehen ist. Zuerst haben wir wieder unser "NaN". Und dann haben wir den Wert sechs - eins plus zwei plus drei - und vier und fünf für den Anfang ignoriert; sprich diese Parameter, für die es keine in der Funktion zu verwendenden Bezeichner gibt. Dieses doch sehr ungewöhnliche Verhalten müssten Sie beachten, wenn Sie mit Parametern bei Funktionen arbeiten wollen. Jetzt stellt sich noch eine Frage. Komme ich denn überhaupt irgendwie an diese Parameter heran, auch wenn Sie hier in der Deklaration weniger Parameter aufführen? Und die Antwort ist: Ja; es gibt einen internen Token, namens "arguments". Und das ist ein Array. Ein Array mit allen Übergabewerten an eine Funktion. Ein Array hat eine Eigenschaft "length", die Anzahl. In diesem Fall wirklich die Anzahl. Sie sehen beim ersten Aufruf, wo ich nur die Eins als Parameter eintrage, haben wir die Länge eins. Bitte, das ist nicht der Wert, das ist die Anzahl. Dann kommt NaN, wie gehabt. Und hier sehen Sie: Dieser Aufruf hat fünf Parameter. Das ist jetzt wieder die Summation von eins plus zwei plus drei. Das heißt also, innerhalb der Funktion würden Sie über "arguments" von null an den ersten Parameter, "arguments" von eins an den zweiten, immer in eckigen Klammern, und so weiter wirklich an alle Argumente kommen, die einer Funktion übergeben werden. Unabhängig davon, ob Sie in der Deklaration genügend Parameter notieren. Wir haben also eine sehr flexible Anzahl an Funktionsargumenten. Aber ehrlich gesagt finde ich, dass man so etwas nicht ausnutzen sollte. Ich programmiere auch sehr oft in strengen Sprachen und es schüttelt mich regelrecht, wenn ich diese Möglichkeiten hier sehe.

JavaScript Grundkurs

Lernen Sie die Möglichkeiten der universellen Sprache JavaScript kennen und machen Sie sich mit der Syntax vertraut, um Ihre Web-Applikationen durch effektive Skripts zu ergänzen.

8 Std. 20 min (134 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!