我正在查看Douglas Crockford的Code Conventions for JavaScript文档,他说var
应该是按字母顺序排列的,每行一个。
var a; // array of class names
var c = node.className; // the node's classname
var i; // loop counter
然而,jsLint(和jsHint)标准是在一行上声明它们,如果Crockford完成了它会抛出这个错误
var语句太多
因此,jsLint想要这样做。
var a, c = node.className, i;
这对我来说似乎很矛盾,虽然编程的整体范围可能相当微小,但我希望在我弄错之前做到这一点。
声明JavaScript变量时,普遍接受的做法是什么?
答案 0 :(得分:13)
LINT需要一个var
声明语句,但它可以分布在多行上。
var a, b, c;
或
var a,
b,
c;
它想要单个语句的原因是为了避免混淆哪些变量属于本地范围。使用单个var语句,所有本地范围的变量都包含在范围内的单个位置,任何人都可以快速读取代码以查看它们是什么。
进一步建议此声明语句位于作用域的顶部,因为JavaScript提升机制无论如何都会在执行之前将它们移动到那里。通过编写代码以期望该范围顶部的语句,提升机制不会导致任何意外行为。
答案 1 :(得分:3)
这两种方法都不对,但我通常更喜欢在代码块的开头使用单行样式声明。最重要的是要保持一致。例如:
function() {
var foo = "bar",
number = 123,
etc = "...";
// stuff..
}
答案 2 :(得分:3)
即使是组合也没关系。这完全取决于偏好。如果您正在与团队合作,那么询问偏好并保持一致。
var a,
c = node.className,
i;
答案 3 :(得分:2)
争论主要是风格讨论,但是,同意标准和让您的团队始终如一地使用更为重要。
答案 4 :(得分:2)
另一种选择(我使用的是):
var a = ...,
b = ...,
c, d;
这清楚地表明我声明了多少变量,并且它们都以某种方式相关(因为我在相同的空间中声明它们,它们基本上总是如此)。它还有助于区分已有值的变量和不具有值的变量。也就是说,我只是在没有很少分配的情况下声明变量。
除非我使用的是遵循不同标准的代码,否则这就是我的工作。这是最重要的事情:遵循项目的风格。否则,请按您的喜好选择。如果你真的不在乎,请使用我的风格;)
答案 5 :(得分:0)
您可以声明多个变量并将它们分配到同一行。这是个人喜好的问题。