Variablen werden deklariert und initialisiert.
// Deklaration und Initialisierung
let x = 1;
Man kann eine Variable aber auch deklarieren und ihr später einen Wert zuweisen.
let x; // Deklaration
x = 1; // Initialisierung
Variablen, die nicht initialisiert wurden, haben den Wert undefined
(engl.: nicht definiert).
Nicht initialisierte Variablen können auch bei Funktionsaufrufen vorkommen. Ruft man eine Funktion, die einen Parameter erwartet, ohne Argument auf, dann erhält der Funktionsparameter den Wert undefined
.
function echo(x) {
return x;
}
// Aufruf ohne Argument
let y = echo();
echo
wird ohne Argument aufgerufen. Dem Parameter x
wird so kein Wert zugewiesen, er erhält den Wert undefined
. Da echo
den Parameter x
einfach zurückgibt, erhält auch y
den Wert undefined
.
Eine Funktion, die einen Parameter erwartet, kann immer auch ohne Argument aufgerufen werden. Man sollte sich beim Schreiben von Funktionen immer überlegen, was in diesem Fall passieren soll. Gute Praxis ist es, in einem solchen Fall dem Parameter einen Default-Wert (engl.: Vorgabe) zuzuweisen. Das hatten wir schon bei der String-Methode charAt(index)
kennengelernt. Normalerweise gibt diese Methode das Zeichen an der Stelle index
zurück. Rufen wir charAt
ohne Argument auf, erhält index
den Default 0
. Es wird das Zeichen an der Stelle 0
zurückgegeben.
Um eine deklarierte Varaible auf undefined
zu überprüfen, verwendet man wie üblich die strikte Gleichkeit. Die Methode charAt
könnte also folgenden Code-Ausschnitt enthalten:
if (index === undefined) {
index = 0;
}
Eine Variable, die nicht mit einem Wert beschrieben wurde, ist vom Typ undefined
. Methoden oder Anweisungen geben ebenfalls undefined
zurück, wenn eine Variable, die ausgewertet wird, mit keinem Wert beschrieben ist. Eine Funktion hat undefined
als Rückgabewert, wenn kein Wert zurückgegeben
wird.
Nicht initialisierte Variablen können auch bei Funktionsaufrufen vorkommen. Ruft man eine Funktion, die einen Parameter erwartet, ohne Argument auf, dann erhält der Funktionsparameter den Wert undefined
.
function echo(x) {
return x;
}
// Aufruf ohne Argument
let y = echo();
echo
wird ohne Argument aufgerufen. Dem Parameter x
wird so kein Wert zugewiesen, er erhält den Wert undefined
. Da echo
den Parameter x
einfach zurückgibt, erhält auch y
den Wert undefined
.
Über === undefined kann überprüft werden ob eine Variable undefiniert ist und ggf. entspechende Aktionen veranlassen.
