单行'var'声明,或每行一个?

Cha*_*ell 10 javascript jslint

我正在研究Douglas Crockford的Code Conventions for JavaScript文档,他说vars应该是按字母顺序排列的,每行一个.

var a;                  // array of class names
var c = node.className; // the node's classname
var i;                  // loop counter
Run Code Online (Sandbox Code Playgroud)

但是,jsLint(和jsHint)标准是在一行上声明它们,如果Crockford完成了它会引发这个错误

var语句太多了

因此,jsLint想要这样做.

var a, c = node.className, i;
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很矛盾,虽然在编程的整体范围内可能相当微小,但我希望在我弄错之前做到这一点.

声明JavaScript变量时,普遍接受的做法是什么?

JAA*_*lde 13

LINT需要一个var声明语句,但它可以分布在多行上.

var a, b, c;
Run Code Online (Sandbox Code Playgroud)

要么

var a,
    b,
    c;
Run Code Online (Sandbox Code Playgroud)

它想要单个语句的原因是为了避免混淆哪些变量属于本地范围.使用单个var语句,所有本地范围的变量都包含在范围内的单个位置,任何人都可以快速读取代码以查看它们是什么.

进一步建议此声明语句位于范围的顶部,因为JavaScript提升机制无论如何都会在执行之前将它们移动到那里.通过编写代码以期望该范围顶部的语句,提升机制不会导致任何意外行为.