Javascript 默认函数参数
嗨,我必须承认,我仍然掌握了很多ES6语法,尽管我已经使用了相当多的语法。 例如,我知道您可以执行Javascript 默认函数参数,javascript,ecmascript-6,Javascript,Ecmascript 6,嗨,我必须承认,我仍然掌握了很多ES6语法,尽管我已经使用了相当多的语法。 例如,我知道您可以执行console.log(乘法(5))来获得 function multiply(a, b = 1) { return a * b; } 但假设你有 function multiply(a, b = 1, c) { return a * b * c; } 显然,您不能执行(console.log(multiply(5,5))。在这种情况下,正在将函数中的参数位置重新排列为函数multipl
console.log(乘法(5))
来获得
function multiply(a, b = 1) {
return a * b;
}
但假设你有
function multiply(a, b = 1, c) {
return a * b * c;
}
显然,您不能执行
(console.log(multiply(5,5))
。在这种情况下,正在将函数中的参数位置重新排列为函数multiply(a,c,b=1)
唯一可行的方法?或者还有其他更聪明的方法吗?另一种方法是使用默认属性分配传递单个对象,而不是多个单独的参数:
函数乘法({a,b=1,c}){
返回a*b*c;
}
console.log(乘法)({
a:3,
b:4,
c:5
}));
console.log(乘法)({
a:3,
c:5
}));
您可以传递未定义的
以使用默认值:
function multiply(a, b = 1, c) {
return a * b * c;
}
multiply(2, undefined, 3); // 6
您可以阅读有关默认参数值的内容并查看更多示例您可以将默认参数设置为第一个参数,然后设置为第二个参数。这样做的一个好处是,您现在不仅限于3个数字
函数乘法(a=1,…args){
args=[a,…args];
返回参数reduce((x,y)=>x*y);
}
控制台日志(乘法(5));
log(multiply(5,10,15,20,25));
不幸的是,JS不支持函数参数的省略(跳过),所以您不能简单地编写
f(1,,2)
并期望第二个参数为默认值。您可以使用数组省略:
函数f(a,b=99,c){
控制台日志(a、b、c)
}
f(…[1,2])如您在此处所见,请尝试运行它。默认参数必须是最后定义的参数。或者您可以将其称为乘法(1,未定义,2)@AZ_uu默认参数可以在参数列表中的任何位置。你把它与扩展运算符混淆了吗?@Sebastiaanny我的意思是这样做是一种很好的做法,这就是为什么我添加了如何使用定义了默认值的参数调用函数。谢谢很多人的精彩回答:)