模块 4 · 第 3 课(共 4)课程中的15/32~12 min
模块课程(3/4)
默认和其余参数
JavaScript 允许您将参数设置为可选(具有默认值)
并使用剩余运算符 (...) 接受 可变数量 的参数。
默认参数
JS
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'仅当参数为 undefined (包括“未通过”情况)时,才应用默认值。
对于 null 或 0,默认值不启动:
JS
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0其余:...names
要接受可变数量的参数,请使用 ... 将它们收集到一个数组中:
JS
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 对象)。
其余必须是最后一个参数:
JS
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxError在通话时传播
... 的另一面是 spread 运算符,它在调用时将数组“分解”为单独的参数:
JS
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalent to somma(1, 2, 3)尝试一下
锻炼#js.m4.l3.e1
尝试:0加载中...
定义一个函数“sum(a, b)”,其中“b”的默认值为 0。它必须通过以下断言:sum(5) === 5、sum(2, 3) === 5、sum(0) === 0。
正在加载编辑器...
显示提示
函数 sum(a, b = 0) { 返回 a + b; }
3 次尝试后可用的解决方案
复习练习
锻炼#js.m4.l3.e2
尝试:0加载中...
定义一个函数“mean(...nums)”,返回其参数的算术平均值,如果没有传递,则返回 0。
正在加载编辑器...
显示提示
如果nums.length为0,则返回0;否则求和并除。
3 次尝试后可用的解决方案