2017-10-07 83 views
2

为什么jslint建议在JavaScript中分割变量声明。这样做有什么好处吗?直到今天我的理解是低于选项1,选项2是相同的。有什么不同?为什么jslint喜欢在JavaScript中分割变量声明?

选项1个

var element1, element2; 

选项2

var element1, 
var element2; 
+1

这是一种风格选择的东西。如果你可以选择使用'const'(或'let'),那么考虑这些,因为它们是块级别的,所以可以更紧密地与实际使用它们的逻辑相关联。如果你试图重新调整某些东西,而不是默默地允许它们,它们也会引发明显的错误。 –

回答

1

除了可读性和避免重复,有一个在另一个之上的没有实际的实际优点。

你会写更少的和干净的代码,如果你不使用多个var声明,但有这article,他们表现出一些案件中,比如你可以忘记插入一个逗号,并使用它一个有趣的讨论

var element1 
    element2; 

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

虽然使用单一var可能更容易出错,不切实际的维护(例如,压痕,移动的变量声明在代码中其他地方),我认为这是一个纯粹的个人决定。

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"; 

(我甚至犯了一个错误输入这个答案,因为我失去了可变数量的轨道,而我只当我分裂声明成注意到)

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

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