我可以在末尾更改默认参数吗

时间:2018-09-03 09:00:11

标签: javascript function

此代码无效。但是我可以只更改最后一个预设参数吗?

function test(a=1,b=2,c=3){
    console.log("abc"+a+b+c);
}

test(,,2);

3 个答案:

答案 0 :(得分:3)

是的,请为前两个传递undefined

function test(a=1,b=2,c=3){
    console.log("abc"+a+b+c);
}

test(undefined, undefined, 2);

如果该参数的自变量的有效值为undefined,则使用默认参数值。有两种发生方式:

  1. 您根本没有通过它(因此它以undefined的形式通过),或者
  2. 您明确地通过了undefined

答案 1 :(得分:3)

通过undefined。供参考,Passing_undefined_vs._other_falsy_values

function test(a=1,b=2,c=3){
    console.log("abc"+a+b+c);
}

test(undefined, undefined,2);

答案 2 :(得分:1)

可以这样做:

test(...[, , 2]);

或者这个:

test(...Array(2), 2);

function test(a = 1, b = 2, c = 3) {
  console.log(a, b, c);
}
test(...[, , 2]);
test(...Array(2), 2);

尽管显式传递undefined更具可读性。

相关问题