注意到两种为函数参数设置默认值的模式:
function fn ( val ) {
val = val || 'default'; // (1)
val || ( val = 'default' ); // (2)
}
一般我用#1,刚刚找到了第二个。
哪个更好?它们之间有什么区别?还有其他选择吗?
最佳答案
你的方法不会一直有效。例如,如果您想传递 false
作为参数,则表达式将被视为 false,并且您的变量将被分配默认值。
要获得更可靠的方法,您可以使用:
val = typeof val !== 'undefined' ? val : "default";
使用此方法,您可以传递 false
作为参数,甚至可以传递 null
(typeof null == "object"
)
如果您有很多可选参数,您还可以考虑将对象作为参数,并使用未设置的属性的默认值来完成它。这更容易,因为您可以将值映射到属性名称,并且顺序不再重要。
关于javascript - 函数中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25581248/