Lecții din modul (3/4)
Parametrii impliciti și de repaus
JavaScript vă permite să faceți parametri opțional (cu o valoare implicită)
și acceptați un număr variabil de argumente cu operatorul rest (...).
Parametrii impliciti
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'Valoarea implicită se aplică numai atunci când argumentul este undefined (inclusiv cazul „nefiecut”).
Pentru null sau 0, implicit nu se activează:
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0Rest: ...names
Pentru a accepta un număr variabil de argumente, colectați-le într-o matrice cu ...:
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); // 10În interiorul funcției, numeri este o matrice reală (nu obiectul magic arguments al funcțiilor vechi).
Restul trebuie să fie ultimul parametru:
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxErrorRăspândire la ora apelului
Cealaltă față a ... este operatorul spread, care „explodează” o matrice în argumente separate în timpul apelului:
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalent to somma(1, 2, 3)Încearcă
Definiți o funcție `sum(a, b)` unde `b` are o valoare implicită de 0. Trebuie să treacă aceste afirmații: sum(5) === 5, sum(2, 3) === 5, sum(0) === 0.
Afișează indiciu
function sum(a, b = 0) { return a + b; }
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Definiți o funcție `mean(...nums)` care returnează media aritmetică a argumentelor sale, sau 0 dacă nu este trecut niciunul.
Afișează indiciu
Dacă nums.length este 0, returnează 0; în caz contrar însumează și împarte.
Soluție disponibilă după 3 încercări