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.

Funktionsausdrücke

Wir haben bisher Funktionsdeklarationen kennen gelernt. Sie beginnen mit dem Schlüsselwort function gefolgt von dem Funktionsnamen, den Parametern und dem Funktionskörper:
// Funktionsdeklaration
function plusOne(x) {
  return x + 1;
}
Man kann Funktionen aber auch direkt im laufenden Code definieren. Eine solche Funktionsdefinition im laufende Code nennt man Funktionsausdruck. So kann man zum Beispiel einer Variablen oder Konstanten direkt eine Funktion zuordnen.
// Funktionsausdruck
const plusOne = function(x) {
  return x + 1;
};
Hier wurde keine Funktion deklariert, sondern wir haben einen Funktionsausdruck direkt einer Konstanten zugeordnet. Da es sich hier um eine Variablen-Zuordnung handelt, sollte das Statement mit einem Semikolon abgeschlossen werden. Im Gegensatz zu einer Funktionsdeklaration kann man bei einem Funktionsausdruck den Namen der Funktion weglassen. Man spricht in diesem Fall von einer anonymen Funktion. Die Funktion wird über den zugeordneten Variablennamen aufgerufen:
let foo = 1;
foo = plusOne(foo);
Eine Funktionsdeklaration und ein Funktionsausdruck mit Variablendeklaration sind praktisch gleichwertig. Welche Schreibweise man bevorzugt, ist Geschmackssache. Wie wir noch sehen werden, spielen Funktionsausdrücke, insbesondere anonyme Funktionen, in der funktionalen Programmierung eine wichtige Rolle.

Da man die Verwendung von Funktionsausdrücken schwer testen kann, hier eine Aufgabe, die das Zusammenspiel von Strings und Schleifen übt.

Aufgabe

Schreibe eine Funktion sperren, die ein Wort entgegennimmt und dieses Wort gesperrt zurückgibt. Das Sperren soll dabei durch Einfügen von Leerzeichen realisiert werden.

Beispiel: sperren("Juni") sollte "J u n i" ergeben.

loving