Funktion mit Rückgabewert

Alle Funktionen liefern einen Rückgabewert. Wenn man ihn nicht selbst bestimmt ist der Rückgabewert undefined. Man kann aber diesen Rückgabewert selbst bestimmen. Das hat den Vorteil, dass man diese Funktion als Ausdruck verwenden kann. Soll heißen, man kann sie beispielsweise einer Variablen zuweisen.
let a = zufall(1,4);
Nehmen wir an, die Funktion liefert einen Zufallswert von 1 bis 4, so kann man sie auf diese Weise gleich da wo man den Wert braucht zuweisen.

<script>

function addition(a, b, c) {
return a + b + c;
}

</script>

Mittels return liefert die Funktion einen Rückgabewert (Ausdruck).

console.log(addition(20, 3, 5));

Eine Funktion kann immer nur einen Rückgabewert zurück geben. Dieser eine Wert kann aber auch ein Array mit mehreren Werten sein. Wenn man return ohne Wert notiert, liefert die Funktion undefined.

Sobald die return Anweisung in der Funktion erscheint, wird die Funktion abgebrochen, alle weiteren Anweisungen die nach return erscheinen, werden nicht ausgeführt. Im folgenden Beispiel wird alert nicht ausgeführt. So etwas macht man beispielsweise mit if-Strukturen Sinn wie im nächsten Beispiel.

function addition(a) {
return a;
alert("hallo");
}

Rekursive Funktion

Der Abbruch der Funktion durch return ermöglicht es auch, rekursive Funktionen zu erstellen. Das sind Funktionen, die sich immer wieder selber aufrufen. Mittels einer if Struktur wird die Anzahl der Aufrufe kontrolliert. Das wird oftmals mit einem Timer verwendet, um einen Countdown zu erzeugen.

let a1 = document.getElementById("anzeige");

function fakultaet(n){
    
    a1.innerHTML += (n + "<br>");
    
    if(n > 0){
        return  fakultaet(n-1);
    }
}
fakultaet(5);

In diesem Beispiel muss ein HTML-Element vorhanden sein, mit der id="anzeige".
Das Element wird in der Variablen a1 gespeichert.

let a1 = document.getElementById("anzeige");

Die Funktion fakultaet(10) wird mit dem Wert 10 aufgerufen. Die erste Anweisung in der Funktion schreibt dieses Argument 10 in das HTML Element. Durch += wird der eventuell vorhandene Inhalt des HTML- Elements nicht überschrieben sondern es wird angehängt.

a1.innerHTML += (n + "<br>");

Dann wird abgefragt ob n größer als 0 ist. In dem Fall wird die Funktion erneut aufgerufen, diesmal mit einem Wert, der um eins kleiner ist, als zuvor. Also beim zweiten mal mit 9 und so weiter. Erst wenn die 0 erreicht ist, wird die Funktion fakultaet() nicht mehr aufgerufen.

 


 

Javascript Tipps