96 Kapitel 3
Die return-Anweisung
Eine Funktion mit return-Anweisung nachvollziehen
function calculateArea(r) {
var area;
if (r <= 0) {
return 0;
} else {
area = Math.PI * r * r;
return area;
}
}
3
4
5
6
7
Jetzt wissen Sie, wie Argumente und Parameter funktionieren und wie Sie einen Wert aus
einer Funktion zurückgeben können. Daher wollen wir uns nun einen Funktionsaufruf
Schritt für Schritt ansehen und beobachten, was im Einzelnen passiert.
Entwickler nennen das hier auch ein
Ablaufprotokoll (oder »flow trace«).
Wie Sie sehen, kann der Ablauf beim
Funktionsaufruf und bei der Rückgabe der
Werte springen. Lassen Sie sich einfach Zeit,
das Ganze Schritt für Schritt durchzugehen.
var radius = 5.2;
1
2
8
9
Zu Beginn deklarieren wir die Variable
radius und weisen ihr den Wert 5.2 zu.
Danach rufen wir die Funktion
calculateArea auf und übergeben ihr
den Radius als Argument.
Das Argument wird in den Para-
meter r kopiert, und calculateArea
beginnt seine Arbeit. r enthält jetzt
den Wert 5.2.
Nun wird der Funktionskörper
ausgeführt. Anfangs deklarieren wir
die Variable area. Dann testen wir,
ob r einen Wert <= 0 hat.
Stattdessen wird die else-Klausel
ausgeführt.
Wir berechnen die Fläche des Kreises
anhand des Werts 5.2 im Parameter r.
Wir geben den Wert der Fläche aus
der Funktion zurück. Damit wird die
Ausführung der Funktion beendet
und der Wert zurückgegeben.
Der Rückgabewert der Funktion
wird in der Variablen theArea
gespeichert.
Die Ausführung des Programms
geht auf der nächsten Zeile weiter.
3
4
5
6
7
1
2
8
9
10
Ist r <= 0, gibt die Funktion 0 zurück
und wird beendet. Wir haben aber
5.2 übergeben, also wird diese Zeile
NICHT ausgeführt.
10
JavaScript-Konsole
Die Fläche beträgt:
84.94866535306801
Hier ist die Ausgabe!
var theArea = calculateArea(radius);
console.log("Die Fläche beträgt: " +
theArea);
Sie sind hier � 97
Einführung in Funktionen
Jetzt, da Sie wissen, wie eine Funktion definiert und aufgerufen wird, wollen
wir zusehen, dass die Syntax nicht kalt wird. Hier sehen Sie alle Teile, die für
die Anatomie einer Funktion wichtig sind:
Anatomie einer Funktion
function addScore ( level , score ) {
var bonus = level * score * .1;
return score + bonus;
}
Beginnen Sie immer mit dem
Schlüsselwort »function«.
Auf das Schlüsselwort function
folgt der Name der Funktion.
Selbst wenn die Funktion
keine Parameter hat,
müssen die runden Klammern
angegeben werden: ().
Gefolgt von null oder mehr
Parameternamen (durch Kommata
getrennt) in runden Klammern.
Der Körper der
Funktion befindet sich
zwischen einem paar
geschweifter Klammern
und enthält eine Reihe
von Anweisungen (wie
die Anweisungen, die Sie
schon kennen).
Eine Funktion kann eine return-
Anweisung enthalten. Das ist
aber nicht zwingend notwendig.
Die return-Anweisung enthält einen
Wert oder einen Ausdruck, der
als Ergebnis des Funktionsaufrufs
zurückgegeben wird.
Hier ist die schließende
geschweifte Klammer für
den Funktionskörper.
Innerhalb der
Funktion benötigte
Variablen werden
im Funktionskörper
deklariert.
F:
Was passiert, wenn ich die
Reihenfolge der Argumente verwechsle
und die Argumente den falschen
Parametern zugewiesen werden?
A: Pech gehabt. Wir können Ihnen fast
garantieren, dass das entweder zu einem
Laufzeitfehler oder zu inkorrektem Code
führt. Überprüfen Sie die Funktionsparameter
immer genau, damit Sie wissen, welche
Argumente erwartet werden.
F:
Warum steht vor den Parameter-
namen kein var? Ein Parameter ist doch
eine neue Variable, oder?
A: Im Prinzip ja. Die Funktion übernimmt
die Instanziierung der Variablen für Sie,
damit Sie das Schlüsselwort var nicht extra
anzugeben brauchen.
F:
Welche Regeln gelten für
Funktionsnamen?
A: Bei der Benennung von Funktionen
gelten die gleichen Regeln wie bei Varia-
blen. Auch hier sollten Sie »sprechende«
Namen und CamelCase (z. B. teeKochen)
verwenden, um Wörter in Funktionsnamen
zu kombinieren.
F:
Was passiert, wenn ich den gleichen
Namen (z. B. x) für eine Argumentvariable
und den entsprechenden Parameter
benutze?
A: Auch wenn Argument und Parameter
den gleichen Namen haben, wie etwa x,
erhält der Parameter x eine Kopie des
Arguments x. Es bleiben also trotzdem zwei
verschiedene Variablen.
F:
Was gibt eine Funktion ohne return-
Anweisung zurück?
A: Der Rückgabewert einer Funktion
ohne return-Anweisung ist undefined.
Es gibt keine
Dummen Fragen
98 Kapitel 3
Lokale Variablendeklarationen
Gute Frage. Ja und Nein.
Die Variablen funktionieren innerhalb der Funktion
genau so wie außerhalb. Das heißt, Sie initialisieren
eine neue Variable mit einem Wert. Der Unterschied
zwischen innerhalb und außerhalb einer Funktion deklarier-
ten Variablen besteht darin, wo die Variable benutzt
werden kann oder an welchem Ort Sie die Variablen
jeweils referenzieren können. Wird eine Variable
außerhalb einer Funktion deklariert, können Sie diese
an beliebiger Stelle in Ihrem Code verwenden. Innerhalb
einer Funktion deklarierte Variablen können dagegen
nur in der Funktion benutzt werden. Das nennt man
auch den Geltungsbereich (Scope) von Variablen. Es gibt
zwei Geltungsbereiche: global und lokal.
Ich habe bemerkt, dass Sie
Variablendeklarationen direkt in der
Funktion vornehmen. Arbeiten diese
Deklarationen genau so?
Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.