Javascript 预定义参数

Javascript 预定义参数,javascript,Javascript,我希望能够在JavaScript中实现这一点: function myFunction(one, two = 1) { // code } myFunction("foo", "2"); myFunction("bar"); 我试过了,但没用。我不知道如何调用这种类型的参数,有人能给我指出正确的方向吗 谢谢。试试: if ( typeof two === "undefined" ) two = 2; 或 未定义的参数将具有值Undefined,这是一个“falsy”值。我们可以

我希望能够在JavaScript中实现这一点:

function myFunction(one, two = 1) {
     // code
}

myFunction("foo", "2");

myFunction("bar");
我试过了,但没用。我不知道如何调用这种类型的参数,有人能给我指出正确的方向吗

谢谢。

试试:

if ( typeof two === "undefined" ) two = 2;

未定义的参数将具有值
Undefined
,这是一个“falsy”值。我们可以测试这种错误,并相应地更改值

function myFunction(one, two) {
     two = two || 1
}
更精确地说,例如,当2为零时,它可能不起作用,请检查是否为空或未定义,例如

if (typeof two === "undefined") two = 1
可能是重复的

使用此选项:

function myFunction(one, two) {
   if (typeof two == 'undefined') two = 1;
   ...
}
小心不要犯常见的错误

two = two || 1;

因为这不允许您提供
0

明确的重复项…但是您确实希望明确检查此回答中的未定义项,因为
typeof
返回您给定的参数类型。。如果
a
是字符串,则返回
string
,如果没有参数,则typeof将返回
undefined
。如果您认为这是重复的,则应投票关闭或将其标记为重复。不要在这里复制答案。涉及
two=two | | x模式应该被理解为有风险的,这取决于您的情况。这意味着用默认值覆盖参数的任何“falsy”值,这可能是合适的,也可能是不合适的。
function myFunction(one, two) {
   if (typeof two == 'undefined') two = 1;
   ...
}
two = two || 1;