在JavaScript中提供默认字符串参数

时间:2013-06-22 15:58:25

标签: javascript coding-style

我总是使用以下语法来确保输入变量不是 null

function f(input){
  if(input === null)
    input = "";
  ...
}

最近,我注意到表达它的时间更短了。

function f(input){
  input = input ? input : "";
  ...
}

但是,我也见过这种语法。

function f(input){
  input = input || "";
  ...
}
  1. 这些是等效的(不是 > >
  2. )?
  3. 最推荐哪种(可读性等)?
  4. 请注意,我将严格使用字符串的输入,使其为有效的一个或null(根本不提供)。如果我想将保护扩展到包括其他类型,我应该考虑哪些其他问题?

1 个答案:

答案 0 :(得分:3)

首先,请注意它们并非完全相同。 #2和#3具有完全相同的结果:除非input真实,否则将其设置为空字符串。 #1表示“除非inputnull,否则请将其设置为空字符串。因此,如果提供了false,则{1}}将在{1}}中显示为input但在#2和#3中false

如果没有向#1提供任何内容,(即''f()将是input,因为这是缺少参数时传递的值,而不是{{1其中一个可以解决这个问题:

undefined

否则,是的,它们在功能上是等同的。对我来说,写它的最好方法是

null

这是我喜欢的风格。它可能是你的;它可能不会。但最重要的是, 是一致的