为什么jslint更喜欢在javascript中拆分变量声明?

时间:2017-10-07 00:01:45

标签: javascript variables jslint

为什么jslint建议在JavaScript中拆分变量声明。这样做有什么好处吗?直到今天我所理解的都是选项1和选项2都相同。有什么区别?

选项1

var element1, element2;

选项2

var element1, 
var element2;

2 个答案:

答案 0 :(得分:2)

这些声明 在技术上是相同的,实际上是一个偏好问题。差异来自人为因素。 jslint 的规则更喜欢一致性可读性,尤其是对于项目的长期而言。

请考虑以下代码:

var variable1 = "value 1", variable2 = "value 2"; 

这看起来并不太糟糕,但即使有两个变量,它的读取也比声明分为两行更难。

现在假设该项目增长了几个月,同样的线也相应增长:

var variable1 = "value 1", variable2 = "value 2", variable4 = "value 4", 
    variable5 = "this"; 
var variable6 = "starts"; 
var variable7 = "to get", variable8 = "hard", variable9 = "to read"; 

没有任何特定的强制执行,开发人员可以选择在何处声明他们想要的变量,这意味着他们可以将它们添加到现有 声明行,或添加新声明。这种选择通常是完全主观的。如上所示,与以下相比,代码变得越来越难以阅读:

var variable1 = "value 1";
var variable2 = "value 2"; 
var variable4 = "value 4";
var variable5 = "this";
var variable6 = "starts";
var variable7 = "to get";
var variable8 = "hard";
var variable9 = "to read";

(我甚至错误地输入了这个答案,因为我忘记了变量数字,我只注意到当我将声明分成行时。)

有了这个规则,开发人员就不需要考虑是否应该对变量声明进行分组以及何时开始新的声明,这样可以消除一些心理负担并提高整个代码库的一致性。单行声明每行还可以在需要时更轻松地移动它们,尤其是在具有剪切和粘贴整行的键绑定的编辑器中。

最终,这仍然是个人决定。如果需要,我们可以禁用该规则。选择最适合您项目的方法。

答案 1 :(得分:1)

除了可读性和避免重复之外,一个人没有实际的实际优势。

如果您不使用多个var语句,您将编写更少且干净的代码,但在此article中有一个有趣的讨论,其中显示了一些例如您可能忘记插入的情况逗号并使用

var element1
    element2;

由于自动分号插入,可能导致第二个变量全局声明。

尽管使用单个var可能更容易出错并且维护不切实际(例如,缩进,将变量声明移动到代码中的其他位置),我认为这纯粹是个人决定。