预定义的参数

时间:2012-10-28 17:07:31

标签: javascript

我希望能够在JavaScript中执行此操作:

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

myFunction("foo", "2");

myFunction("bar");

我尝试过这个并不起作用。我不知道如何调用这种类型的参数,有人能指出我正确的方向吗?

感谢。

4 个答案:

答案 0 :(得分:3)

function foo(a, b)
 {
   a = typeof a !== 'undefined' ? a : 42;
   b = typeof b !== 'undefined' ? b : 'default_b';
   //...
 }

可能是Set a default parameter value for a JavaScript function

的副本

答案 1 :(得分:2)

function myFunction(one, two) {
     two = two || 1
}

更精确,例如当两个为零时,它可能不起作用,检查是否为null或未定义,例如。

if (typeof two === "undefined") two = 1

答案 2 :(得分:2)

使用此:

function myFunction(one, two) {
   if (typeof two == 'undefined') two = 1;
   ...
}

小心不要犯常见的错误

two = two || 1;

因为这不允许您提供""0

答案 3 :(得分:0)

尝试:

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

two = typeof two !== "undefined" ? two : 2;

未定义的参数将具有值undefined,这是一个“虚假”值。我们可以测试这种虚假,并相应地改变它。