函数中的默认值

时间:2014-08-30 10:10:10

标签: javascript design-patterns functional-programming

注意到两个模式为函数的参数设置默认值:

function fn ( val ) {
    val = val || 'default'; // (1)
    val || ( val = 'default' ); // (2)
}

通常我使用#1,只找到第二个。

哪个更好?那些有什么区别?还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

您的方法不会一直有效。如果要将false作为参数传递,例如,表达式将被视为false,并且您的变量将被赋予默认值。

对于更强大的方法,您可以使用:

val = typeof val !== 'undefined' ? val : "default";

使用此方法,您可以将false作为参数传递,甚至nulltypeof null == "object"

如果你有很多可选参数,你也可以考虑将一个对象作为参数,并在未设置的属性上使用默认值来完成它。这更容易,因为您可以将值映射到属性名称,并且顺序不再重要。

相关问题