我有一个函数,我想传递一个参数,但是我希望它默认为0。
是否有可能与PHP类似,例如:
function byMonth(export=0) {
非常感谢
答案 0 :(得分:11)
不要这样做
function byMonth(export){
export = export || 0;
alert(export);
}
修改强>
之前的版本有一个无声的错误,我只是作为不做的例子。
问题是,假设您将函数传递给参数false
,它将采用默认值,尽管您实际上是使用参数调用它。
所有其他参数都将被忽略,默认将被使用(因为 falsy 的javascript概念)
0
""
NaN
false
null
undefined
检查参数是否存在的更安全的方法是:
function byMonth(export){
if(export === undefined) export = 0;
}
编辑2 :
之前的功能并非100%安全,因为某人(可能是一个白痴)可以定义undefined
使该功能出乎意料。这是一个最终的,适用于任何地方的防弹版本:
function byMonth(export){
var undefined;
if(export === undefined) export = 0;
}
答案 1 :(得分:4)
您可以在内部设置默认值,如下所示:
function byMonth(export) {
export = export || 0;
//your code
}
答案 2 :(得分:0)
我迟到了6年多,但现在有了ES6,还有另一个解决方案。 Pablo Fernandez说你可以将undefined
设置为一个值,你应该像这样检查:
function byMonth(export){
var undefined;
if(export === undefined) export = 0;
}
好吧,现在你可以这样做了:
function byMonth(export){
if(export === void 0) export = 0;
}
void 0
始终评估为"真实" undefined
。