不知道从什么时候开始,程序员会尽可能选择使用单个var语句来申明和赋值多个变量,并用逗号隔开。从某种程度上来说,javascript的特性决定了使用多个var语句是不必要的。
为了说明白我的意思,举例如下:
我问了一些资深的javascript程序员,为何偏好于用这种使用单个var语句的方式,而唯一能得到的就只有主观方面的解释:
- 使用多个var语句显得累赘。
- 使用多个var语句显得笨拙。
- 用单个var语句使代码看起来格式清晰。
然而我并不同意这种观点。在javascript里面,多个var语句申明并非不必要,这样做也并不笨拙。它们减少了代码维护的成本。
- 维护
试想下这种情形:我们有一些代码需要修改,需将foo的值改为bar-1而不是写死为1,则我们需要将foo定义在bar后面,如下图所示:
上面的代码看起来似乎并没多大影响,但是在编辑器里,你需要将上述“之前”的代码改为“之后”的版本。看看有多少地方涉及到这个问题需要修改。
现在看看下面的版本,再找找相应要修改的地方,少了吧。
- 缩进:多行表达式
在一个var语句里声明里多个多行文本对象/数组或函数表达式该如何缩进?看起来如何?
PS:那些说用单个var语句申明多个变量看起来格式清晰的程序员,我想肯定是用4个空格键进行缩进的,并且没有注释。这样的代码看起来很糟,并不能提供任何帮助。
- 压缩
一个好的压缩器,如UglifyJS,会知道如何将多个连续的var语句压缩为一个单一的、用逗号分隔变量的var语句。这样你就不需要进行“过早地优化”了。
如果你用的压缩器不能做到这些,去找个好点的。
不管怎样,我建议你也考虑一下,总结下哪种方式比较符合你的要求。然后按照自己的方式写就行。
附言:Rick Waldron告诉我他最近一直在使用类似的风格。虽然他在一个执行环境中也是只使用一个var语句,但是仅仅是用来声明变量,而赋值是在函数体里面完成的。正如javascript本身所做的那样。
原文链接:https://benalman.com/news/2012/05/multiple-var-statements-javascript/
来自:未命名