为什么要关心Node.js中的尾随逗号?

时间:2012-02-29 15:14:45

标签: javascript node.js

在大多数Node.js库中,人们需要特别注意在最后一个key-property对象之后删除尾随逗号:

var test = {
    key1: 123,
    key2: 456,
    key3: 789
};

这在编辑代码时会产生一些麻烦,例如:要交换最后两个键值对,还要添加一个逗号并删除一个逗号。有些人将逗号移到下一行,这解决了最后一个元素的问题,但也使代码更难阅读(恕我直言):

var test = {
      key1: 123
    , key2: 456
    , key3: 789
};

另一方面,据我所知,JavaScript中的尾随逗号仅在某些IE浏览器中产生麻烦。所以我想知道是否有任何技术的理由不在Node.js中用尾随逗号写哈希? (如下所示:)

var test = {
    key1: 123,
    key2: 456,
    key3: 789,        
};

5 个答案:

答案 0 :(得分:5)

不,没有技术理由这样做。

然而,我从来没有把尾随昏迷只是因为我认为它使代码更清晰。可能有些人也有来自网络开发的习惯,就像你提到的那样,你需要小心那些因为IE。

答案 1 :(得分:1)

首先,我认为尾随逗号是丑陋的,所以我只在必要时使用它们(只有一个元素的python元组) - 并且引导逗号甚至更加丑陋。

除此之外,有理由永远不要使用它们:如果您编写的代码是针对node.js的,或者客户端很可能是不喜欢它们的IE,则不必小心。

在node.js中省略它们没有技术原因。

答案 2 :(得分:1)

更新:我已经改变了我的立场。我认为尾随逗号很棒,因为您不必更改两行来添加属性,而diff只显示添加的行。

古老而错误:

我找到了一个很好的理由不使用尾随逗号但是它并不特定于node.js

From Johan Sundström

  

这种格式的好处是差异性:添加或删除a   属性或数组成员几乎从不接触任何其他行,但是   实际发生变化的一个,而尾随逗号语法   几乎总是触及两行来使逗号正确。

     

相反,更改的行将永远不会有任何不相关的内容,   这有助于扫描提交视觉效果。

答案 3 :(得分:1)

它可能不会改善您的运行时或类似的结果,但是您可以使用与版本控制相关的结尾逗号。

如果不使用它,git将检测到其中一行已被修改而另一行已添加。但是,如果使用它,git会检测到仅添加了一行:

使用使用结尾逗号:

enter image description here

不使用使用结尾逗号:

enter image description here

答案 4 :(得分:0)

我是对象中alpha排序键的忠实粉丝。这有许多优点。主要是两个相似物体的视觉比较。所有提供JavaScript调试支持的现代IDE(我已经看过)对属性进行alpha排序。因此,当您将断点处的对象与您的代码进行比较时,它就会变得更容易。

在对象的最后一对上使用尾随逗号可以很容易地对对象进行排序:选择所有行并在编辑器中点击排序键。如果最后一对不再是最后一对,则不需要进一步添加/删除逗号。

我同意所有其他评论(首先)它使你的代码"不清洁"或者丑陋的。我发现在移动到尾随逗号之后我很快习惯了它,经过几周我开始喜欢这样看。

作为人类,我们对自己习惯的方式感到最满意。鉴于我们看到的大多数代码都没有我们最喜欢的尾随逗号。使用尾随逗号几周后,您可能会发现您更喜欢这样。你可能会发现它更实用。