Modulelessen (3/4)
Standaard- en rustparameters
Met JavaScript kunt u parameters optioneel maken (met een standaardwaarde)
en accepteer een variabel aantal argumenten met de rest-operator (...).
Standaardparameters
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'De standaardwaarde is alleen van toepassing als het argument undefined is (inclusief de hoofdlettergebruik "niet doorgegeven").
Voor null of 0 geldt de standaard niet:
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0Rust: ...names
Om een variabel aantal argumenten te accepteren, verzamel ze in een array met ...:
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); // 10Binnen de functie is numeri een echte array (niet het magische arguments object van oude functies).
De rest moet de laatste parameter zijn:
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxErrorVerspreid tijdens het gesprek
Het andere gezicht van ... is de spread-operator, die een array tijdens de oproep "explodeert" in afzonderlijke argumenten:
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalent to somma(1, 2, 3)Probeer het
Definieer een functie `sum(a, b)` waarbij `b` de standaardwaarde 0 heeft. De functie moet de volgende beweringen doorgeven: sum(5) === 5, sum(2, 3) === 5, sum(0) === 0.
Toon hint
functie som(a, b = 0) { retourneer a + b; }
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Definieer een functie `mean(...nums)` die het rekenkundig gemiddelde van zijn argumenten retourneert, of 0 als er geen wordt doorgegeven.
Toon hint
Als nums.length 0 is, retourneert u 0; anders optellen en delen.
Oplossing beschikbaar na 3 pogingen