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