Der Browser-Speicher localStorage ist nicht verfügbar. Entweder unterstützt dein Browser ihn nicht oder du hast ihn deaktiviert oder er ist voll. Ohne localStorage werden deine Lösungen nicht gespeichert.

undefined

Bisher hatten wir Variablen bei der Deklaration immer auch 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;
}

Aufgabe

Schreibe eine Funktion hallo, die einen String als Parameter entgegennimmt und 'Hallo <Parameter>!' zurückgibt. hallo('Akgün') sollte 'Hallo Akgün!' zurückgeben. Wird hallo ohne Argument aufgerufen, so soll 'Hallo Welt!' zurückgegeben werden.

loving