Lekcje modułu (3/4)
Parametry domyślne i rest
JavaScript umożliwia tworzenie parametrów opcjonalnych (z przypisaną wartością
domyślną) oraz akceptowanie zmiennej liczby argumentów za pomocą operatora rest (...).
Parametry domyślne (default parameters)
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'Wartość domyślna ma zastosowanie tylko wtedy, gdy argument wynosi undefined (w tym w
przypadku braku jego przekazania). Dla wartości null lub 0 wartość domyślna się
nie aktywuje:
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0Rest: ...nomi
Aby akceptować zmienną liczbę argumentów, zbierz je w tablicę za pomocą ...:
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); // 10Wewnątrz funkcji numeri to prawdziwa tablica (a nie magiczny obiekt arguments ze
starych funkcji).
Parametr rest musi być ostatnim parametrem:
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxErrorSpread przy wywołaniu
Druga strona ... to operator spread, który „rozbija” tablicę na osobne argumenty
w momencie wywołania:
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalente a somma(1, 2, 3)Spróbuj sam
Zdefiniuj funkcję `sum(a, b)`, w której `b` ma wartość domyślną 0. Musi przejść asercje: sum(5) === 5, sum(2, 3) === 5, sum(0) === 0.
Pokaż wskazówkę
function sum(a, b = 0) { return a + b; }
Rozwiązanie dostępne po 3 próbach
Ćwiczenie powtórzeniowe
Zdefiniuj funkcję `mean(...nums)`, która zwraca średnią arytmetyczną swoich argumentów, lub 0, jeśli nie przekazano żadnego.
Pokaż wskazówkę
Jeśli nums.length wynosi 0, zwróć 0; w przeciwnym razie zsumuj i podziel.
Rozwiązanie dostępne po 3 próbach