Lektionen des Moduls (3/4)
Standard- und Rest-Parameter
JavaScript ermöglicht es dir, Parameter optional zu machen (mit einem Standardwert)
und eine variable Anzahl von Argumenten mit dem Rest-Operator (...) zu akzeptieren.
Standardparameter (Default parameters)
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'Der Standardwert wird nur angewendet, wenn das Argument undefined ist (einschließlich des
Falls „nicht übergeben“). Für null oder 0 greift der Standardwert nicht:
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0Rest: ...nomi
Um eine variable Anzahl von Argumenten zu akzeptieren, sammle sie mit ... in einem Array:
function somma(...numeri) {
let totale = 0;
for (const n of numeri) totale += n;
return totale;
}
somma(); // 0
somma(5); // 5
somma(1, 2, 3, 4); // 10Innerhalb der Funktion ist numeri ein echtes Array (nicht das magische arguments-Objekt
der alten Funktionen).
Der Rest-Operator muss der letzte Parameter sein:
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxErrorSpread beim Aufruf
Die andere Seite von ... ist der Spread-Operator, der ein Array beim Aufruf in
separate Argumente „zerlegt“:
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalente a somma(1, 2, 3)Probier es aus
Definiere eine Funktion `sum(a, b)`, bei der `b` den Standardwert 0 hat. Sie muss die Asserts bestehen: sum(5) === 5, sum(2, 3) === 5, sum(0) === 0.
Hinweis anzeigen
function sum(a, b = 0) { return a + b; }
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Definiere eine Funktion `mean(...nums)`, die das arithmetische Mittel ihrer Argumente zurückgibt, oder 0, wenn keine Argumente übergeben werden.
Hinweis anzeigen
Wenn nums.length gleich 0 ist, return 0; andernfalls summieren und dividieren.
Lösung nach 3 Versuchen verfügbar