在JavaScript中声明变量的不易出错的方法是什么?
var a;
var b;
var c;
或
var a,
b,
c;
jQuery和Dojo使用第二种方法,并且就代码易读性而言,这是我最喜欢的,问题是我发现它更难调试。
示例1:
var a,
b,
c; // oops.. semicolon instead of comma
d,
e;
示例2:
在项目中搜索某个变量时,var
在声明变量时更加突出。
编辑:原始示例错误,我在复制和粘贴时犯了一个错误。代码已经更新,对不方便感到抱歉。
答案 0 :(得分:5)
由于您提到的原因,多个变量声明(而不是组合)不易出错。但是,合并声明还有其他一些优点:
var
个关键字。var
关键字比许多关键字缩小得更好。另一方面,正如您所提到的,可以使用组合变量声明进行错误,并且可以在差异中表示它们。
只要你在整个项目中保持一致的变量声明风格,你选择的风格就不重要了。
答案 1 :(得分:2)
我更喜欢您使用一个var
关键字的第二种方法。最近我更进一步,在每个变量上实例化类型,以帮助我防止意外类型重铸。一个例子是:
var a = 0,
b = 0,
c = {},
d = [],
f = "";
如果我此时有值,我在这里提供一个实际值。如果不是,我提供以下虚拟值:
0
[]
for array {}
用于对象文字和DOM节点""
表示字符串function () {return;}
for functions false
for boolean 答案 2 :(得分:1)
var a;
var b;
var c;
是更好的方法,因为它不会抛出未定义的错误。此外,变量的范围也适当。不在全球范围内。
var a=10;
b=5;
将导致b在全球范围内。
编辑:这与最初发布的样本https://stackoverflow.com/revisions/9746359/2有关。通过更新的上下文,它可以归结为更多个人偏好。我的建议是不要为这些错误留下任何空间,因为很难找到它们。
答案 3 :(得分:0)
第二种选择在我的书中更好,因为它不那么多余。现代浏览器和IDE可以很容易地找到像你所说的错误。
这是一个显示会发生什么的jsFiddle。意外地在系列中插入分号会导致Uncaught ReferenceError
。这是一个快速修复和较小的权衡,以获得更好的语法。如果这是您在编写JavaScript时必须处理的最糟糕的错误,那么您将度过美好的一天。
具有讽刺意味的是,你的第二个例子中有一个拼写错误 - a
之后的分号。哎呦。 :)
答案 4 :(得分:0)
使用1 var。
进行变量的多重声明有一个好处你可以使用较低的缩小脚本。显然,拥有var
声明所需的4个字节在像stackoverflow.com这样的地方之前没有多大区别。基于一些额外的var
声明,数以百万计的下载量= = gigs of transfer。