Уроки модуля (3/4)
Параметры по умолчанию и остальные параметры
JavaScript позволяет делать параметры необязательными (со значениями по умолчанию).
и примите переменное количество аргументов с помощью оператора rest (...).
Параметры по умолчанию
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'Значение по умолчанию применяется только в том случае, если аргумент равен undefined (включая случай «не передано»).
Для null или 0 по умолчанию не срабатывает:
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0Остальное: ...names
Чтобы принять переменное количество аргументов, соберите их в массив с помощью ...:
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Внутри функции numeri представляет собой настоящий массив (а не магический объект arguments старых функций).
Остальные должны быть последним параметром:
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxErrorРаспространение во время звонка
Другая сторона ... — это оператор spread, который «разбивает» массив на отдельные аргументы во время вызова:
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalent to somma(1, 2, 3)Попробуйте это
Определите функцию sum(a, b)`, где `b` имеет значение по умолчанию 0. Она должна передавать следующие утверждения: sum(5) === 5, sum(2, 3) === 5, sum(0) === 0.
Показать подсказку
функция sum(a, b = 0) { return a + b; }
Решение доступно после 3 попыток
Обзор упражнения
Определите функцию `mean(...nums)`, которая возвращает среднее арифметическое значение своих аргументов или 0, если ни один не передан.
Показать подсказку
Если nums.length равно 0, верните 0; в противном случае суммируйте и делите.
Решение доступно после 3 попыток