预定义参数 [重复]
Posted
技术标签:
【中文标题】预定义参数 [重复]【英文标题】:pre-defined parameters [duplicate] 【发布时间】:2012-10-18 03:25:42 【问题描述】:我希望能够在 javascript 中做到这一点:
function myFunction(one, two = 1)
// code
myFunction("foo", "2");
myFunction("bar");
我试过了,但它不起作用。我不知道如何调用这种类型的参数,有人能指出我正确的方向吗?
谢谢。
【问题讨论】:
涉及two = two || x;
模式的答案应被理解为有风险,具体取决于您的具体情况。这意味着用默认值覆盖参数的任何“虚假”值,这可能合适也可能不合适。
【参考方案1】:
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 重复
【讨论】:
明确重复...但您确实想明确检查未定义,如本答案中所示 因为typeof
返回你给的参数的类型。如果a
是一个字符串那么string
被返回,如果没有参数那么typeof将返回undefined
如果您认为这是重复的,您应该投票关闭或标记它。不要在这里复制答案。【参考方案2】:
使用这个:
function myFunction(one, two)
if (typeof two == 'undefined') two = 1;
...
注意不要犯常见的错误
two = two || 1;
因为这不允许您提供""
或0
。
【讨论】:
【参考方案3】:function myFunction(one, two)
two = two || 1
更准确地说,例如当两个为零时它可能不起作用,检查 null 或 undefined 例如
if (typeof two === "undefined") two = 1
【讨论】:
【参考方案4】:试试:
if ( typeof two === "undefined" ) two = 2;
或
two = typeof two !== "undefined" ? two : 2;
未定义的参数将具有值undefined
,这是一个“假”值。我们可以测试这种虚假性,并相应地更改值。
【讨论】:
以上是关于预定义参数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章