Selbst definierte Funktionen
Eine Funktion wird nach folgendem Schema definiert:
// Definition:
function my_name(param1, param2, ...) {
// Anweisungen
}
// Aufruf:
my_name(arg1, arg2, ...);
Funktionsdefinition:
- Am Anfang steht das Schlüsselwort
function
. - Dann folgt ein selbstgewählter, eindeutiger Funktionsname. Der Funktionsname darf als Sonderzeichen nur den Unterstrich
_
enthalten. Zahlen im Namen sind erlaubt, aber nicht am Namensanfang. - Hinter dem Funktionsnamen steht immer ein Klammerpaar
()
. Darin können ein oder mehrere Parameter stehen. Wenn die Funktion keinen Parameter hat, bleibt die Klammer leer. - Anschließend folgt in geschweiften Klammern
{}
der Anweisungsblock, also das, was die Funktion tun soll.
Funktionsaufruf:
Die Definition einer Funktion bewirkt zunächst gar nichts. Um sie auszuführen, schreibt man an einer (oder mehreren) beliebigen Stelle im Code ihren Namen (Beispielname "my_name"):
- Funktionen ohne Parameter:
my_name();
- Funktionen einem Parameter:
my_name(arg);
- Funktionen mit mehreren Parametern:
my_name(arg1, arg2, arg3, ...);
(Die Werte in den Klammern heißen in Funktionsaufrufen Argumente. Sie werden der Funktion als Parameter übergeben.)
Funktionen ohne Parameter
Eine parameterlose Funktion wird immer gleich aufgerufen und tut immer dasselbe.
Beispiel:
function begruessung() {
let vorname = prompt("Namen eingeben:");
alert("Hallo, " + vorname);
}
begruessung();
Der Aufruf begruessung() bewirkt, dass ein Prompt-Fenster erscheint, in das man seinen Namen eingeben kann. Der Name wird dann in einem Alert-Fenster zusammen mit "Hallo" wieder ausgegeben.
Funktionen mit Parametern
Funktionen mit einem (oder mehreren) Parametern erwarten beim Funktionsaufruf Werte (Argumente) für ihre Parameter. Sie werden innerhalb der Klammern angegeben. Innerhalb der Funktion können die Parameter dann genau wie normale Variablen verwendet werden.
Beispiele:
// Funktion mit 1 Parameter:
function alter(zahl) {
alert("Du bist " + zahl + " Jahre alt.");
}
// Aufruf der Funktion:
alter(27); // Ausgabe: "Du bist 27 Jahre alt."
// Fkt. mit mehreren Parametern:
function summe(zahl1, zahl2, zahl3) {
let ergebnis = zahl1 + zahl2 + zahl3;
alert("Summe: " + ergebnis);
}
// Aufruf der Funktion:
summe(13, 8, 29); // Ausgabe: "Summe: 50"
// Funktion mit mehreren Parametern:
function division(zahl1, zahl2) {
let ergebnis = zahl1 / zahl2;
alert("Ergebnis: " + ergebnis);
}
// Aufruf der Funktion:
division(15, 3); // Ausgabe: 5
division(3, 15); // Ausgabe: 0.2
- Die erste Funktion
alter
erwartet beim Aufruf ein einzelnes Argument. Dieses wird in einen String eingebaut und in einem Alert-Fenster ausgegeben. - Die zweite Funktion
summe
erwartet genau 3 Argumente (durch Kommas getrennt). Diese werden addiert und in einer neuen Variablens
gespeichert. Anschließend wird der Wert vons
in einen String eingebaut und in einem Alert-Fenster ausgegeben. - Die dritte Funktion
division
erwartet genau 2 Argumente. Hier ist gut zu erkennen, dass die Reihenfolge der Argumente beim Funktionsaufruf wichtig ist: sie muss zur Reihenfolge der Parameter in der Funktionsdefinition passen, um ein sinnvolles Ergebnis zu erhalten.
Rückgabewerte
Die im letzten Abschnitt gezeigte Funktion addiere
berechnet einen Wert und zeigt ihn anschließend in einem Fenster. Oft ist es aber wünschenswert, dass der berechnete Wert - also das Ergebnis der Funktion - in JavaScript weiterverarbeitet wird. Für diesen Zweck gibt es Funktionen mit Rückgabewerten. Ein Rückgabewert wird mit der Anweisung return
erzeugt.
Nach der return
-Anweisung wird die Funktion immer beendet. Deswegen sollte return
in den meisten Fällen am Ende der Funktionsdefinition stehen.
function summe(zahl1, zahl2, zahl3) {
let s = zahl1 + zahl2 + zahl3;
return s;
}
let mittelwert = summe(34, 54, 97) / 3;
alert("Mittelwert: " + mittelwert);
Im Beispiel nimmt die Funktion 3 Werte entgegen, addiert sie, speichert das Ergebnis in der Variablen s und gibt s zurück. Anschaulich bedeutet das, dass das Ergebnis der Funktion an die Stelle im JavaScript-Code eingefügt wird, wo der Funktionsaufruf steht. Im weiteren Verlauf des Skripts wird das Ergebnis dann durch 3 dividiert, in der Variablen mittelwert
gespeichert und diese in einem Alert-Fenster angezeigt.