chi*_*s42 3 javascript parameters default-value
我知道两种设置默认参数的方法,但我想知道首选方法是什么.
function Foo(par1, par2)
{
if(par2 == null)
par2 = "my default"
}
Run Code Online (Sandbox Code Playgroud)
要么
function Foo(par1, par2)
{
par2 = par2 || "my default"
}
Run Code Online (Sandbox Code Playgroud)
还是有比这些更好的方法?
编辑:
我还想知道其他人如何处理多个可选参数,例如:我们在内部库中有几个这样的函数(我认为它们非常难看).
function Foo(par1, par2, par3)
{
if(par2 == null)
par2 = "my default"
if(par3 == null)
par3 = "my default"
// Do something
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
Foo("Parameter one",null,true)
Run Code Online (Sandbox Code Playgroud)
第一个实际上是错误的,因为它们将是未定义的,而不是空的.
par2 !== null 对于这种情况会返回true.
因为javascript,如果松散比较,将null,undefined,false比较为相同的值,我建议明确检查一个未定义的值.
if (par2 !== undefined)
par2 = "my default";
要么
par2 = par2 !== undefined ? par2 : "my default";
这将允许您传递false或null之类的值.
但是,您的第二种方法很方便,但只有在您知道永远不会传递false或null的情况下.