我总是在 JavaScript 中处理可选参数,如下所示:
function myFunc(requiredArg, optionalArg){
optionalArg = optionalArg || 'defaultValue';
// Do stuff
}
有没有更好的方法呢?
有没有使用||
那会失败吗?
如果传递了 OptionalArg,您的逻辑将失败,但评估为 false - 请尝试将此作为替代方法
if (typeof optionalArg === 'undefined') { optionalArg = 'default'; }
或另类成语:
optionalArg = (typeof optionalArg === 'undefined') ? 'default' : optionalArg;
使用哪个成语最能传达您的意图!
在 ECMAScript 2015(又名 “ES6”)中,您可以在函数声明中声明默认参数值:
function myFunc(requiredArg, optionalArg = 'defaultValue') {
// do stuff
}
在这篇关于 MDN的文章中更多关于它们(尽管文章标题,它们在 JavaScript 中被称为 “参数” 而不是 “参数”)。
目前仅支持 Firefox ,但随着标准的完成,预计支持将迅速提升。
我发现这是最简单,最易读的方式:
if (typeof myVariable === 'undefined') { myVariable = 'default'; }
//use myVariable here
Paul Dixon 的回答(以我的拙见)不如此可读,但归结为偏好。
insin 的答案要先进得多,但对大功能更有用!
编辑 11/17/2013 9:33 pm:我已经为 Node.js 创建了一个包,它可以更容易地 “重载” 称为参数的函数(方法)。