60 lines
2.1 KiB
JavaScript
60 lines
2.1 KiB
JavaScript
/**
|
|
* 🌐 JS 03: FUNKTIONEN, SCOPE & CLOSURES 🌐
|
|
* ==========================================
|
|
* Funktionsarten, Gültigkeitsbereiche, Rest-Parameter und Closures.
|
|
*/
|
|
|
|
// 🎯 TEILZIEL 1 (TODO 1): erstelleZaehler(startWert = 0)
|
|
// Erstelle eine Funktion, die einen internen Zähler kapselt (Closure).
|
|
// Die zurückgegebene Funktion soll bei jedem Aufruf den Zähler um 1 erhöhen
|
|
// und den neuen Wert zurückgeben.
|
|
// Standardwert für startWert ist 0.
|
|
// Beispiel:
|
|
// const zaehler = erstelleZaehler(0);
|
|
// zaehler(); // 1
|
|
// zaehler(); // 2
|
|
function erstelleZaehler(startWert = 0) {
|
|
// TODO: Innere Zählerfunktion (Closure) zurückgeben
|
|
return function() {
|
|
return 0;
|
|
};
|
|
}
|
|
|
|
// 🎯 TEILZIEL 2 (TODO 2): multiplizierer(faktor)
|
|
// Erstelle eine Factory-Funktion (Closure), die eine Multiplikationsfunktion zurückgibt.
|
|
// Die zurückgegebene Funktion nimmt eine Zahl x entgegen und gibt (x * faktor) zurück.
|
|
// Beispiel:
|
|
// const verdopple = multiplizierer(2);
|
|
// verdopple(5); // 10
|
|
// const verdreifache = multiplizierer(3);
|
|
// verdreifache(4); // 12
|
|
function multiplizierer(faktor) {
|
|
// TODO: Arrow-Funktion oder anonyme Funktion zurückgeben
|
|
return (x) => 0;
|
|
}
|
|
|
|
// 🎯 TEILZIEL 3 (TODO 3): summiereAlles(...zahlen)
|
|
// Berechne die Summe beliebig vieler übergebener Zahlen unter Verwendung des
|
|
// Rest-Parameters (...zahlen).
|
|
// Werden keine Argumente übergeben, soll 0 zurückgegeben werden.
|
|
// Beispiel:
|
|
// summiereAlles(1, 2, 3, 4); // 10
|
|
// summiereAlles(5, -2); // 3
|
|
// summiereAlles(); // 0
|
|
function summiereAlles(...zahlen) {
|
|
// TODO: Rest-Parameter aufsummieren
|
|
return 0;
|
|
}
|
|
|
|
// 🎯 TEILZIEL 4 (TODO 4): erstellePraefixierer(praefix)
|
|
// Erstelle eine Funktion (Closure), die einen String als Präfix vor jeden
|
|
// übergebenen Text setzt.
|
|
// Beispiel:
|
|
// const mitEuro = erstellePraefixierer("€ ");
|
|
// mitEuro("100"); // "€ 100"
|
|
// const https = erstellePraefixierer("https://");
|
|
// https("google.com"); // "https://google.com"
|
|
function erstellePraefixierer(praefix) {
|
|
// TODO: Closure-Funktion zurückgeben
|
|
return (text) => "";
|
|
}
|