2011-12-18 55 views
1

我已经看到了两个不同的“风格”为默认值设置default在JavaScript变量argument两种风格设置默认值

argument = argument || default  // Version 1 
argument || (argument = default) // Version 2 

这些是完全等价?一个比另一个更快,还是更好?

回答

2

如果argument已经是真的,第二个避免任何分配,所以它可能在理论上更快一点。

真的,虽然我怀疑你会看到有什么不同。


只是为了打破它多一点

  1. 分配argument本身如果argument已经truthy,以其他方式转让给argumentdefault

  2. 评估布尔条件argument || (argument = default)。如果argument已经是真的,评估将短路,没有别的事情会发生。如果argument不是truthy,布尔条件下半年会打,而且argument将被分配default