反对Javascript中引导逗号的客观原因

The*_*ver 3 javascript coding-style

我最近加入了一个以引导标准作为标准的项目.

虽然我理解这种风格的原因(线条的安全评论),但它非常不方便(温和地说).

我有一种强烈的感觉,这不仅仅是关于品味,而且我需要更好的理由而不是"我不喜欢它"来说服团队不要使用这种风格.

ps示例代码:

function cls(){

    var prop = {
         a:'a'
        ,b:'b'
        ,c:'c'
        ,d:'d'
    };

    var arr = [
         11
        ,12
        ,13
        ,14
    ];

    var  x=1
        ,y=2
        ,z=3;

    return {

        f:function(){       
            alert(prop.a);      
        }

        , g:function(){
            alert(arr[0]);
        }

        , h: function(){
            alert(x);
        }

    };
}    


var test = cls();
test.f();test.g();test.h();
Run Code Online (Sandbox Code Playgroud)

到目前为止的客观原因(部分来自答案,部分来自我的):

  1. 这种风格非常罕见,特别是在JavaScript学习材料和框架中.很可能项目的新手会感到不舒服,以及需要处理格式不同的项目的开发人员

  2. IDE中的大多数自动格式化工具都不尊重此样式(不是默认情况下也不是通过配置)

  3. 各种工具/实用程序中的潜在错误,因为这些工具很可能在定期放置的逗号上实现和测试.示例:使用前导逗号编译JavaScript代码时,Sencha CMD存在错误

更新:我们根据常用样式自动格式化了所有项目(具体来说,根据谷歌风格指南:http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml).代码看起来明显更好,并且所有工具都按预期工作(IDE,Optimizers,Builders(Sencha CMD),语法验证器,......).这是大公司内的一个大项目,所以这不是一个微不足道的决定.此外,它损失了清晰的CVS历史 - 但最终它是值得的.

qco*_*ter 5

我不知道这应该如何做出更安全的线条评论.当然,如果您评论最后一项,则避免使用尾随逗号,但如果您对第一项进行评论,则会得到一个引导逗号.中间项目你是安全的.

如果您始终使用尾随逗号,则可以在不获取前导逗号的情况下对第一个项目进行注释,但是对最后一个项目进行注释将留下尾随逗号.

不同之处在于尾随逗号通常在js对象文字中被接受,而前导逗号则不然.


Kak*_*aka 5

我觉得还可以 当您要添加或删除内容时,将减少打字错误。

更新一行即可,无需为其他行添加逗号或删除逗号。

var prop = {
    a: 'a'
  , b: 'b'
  , c: 'c'
  , d: 'd'
}

var arr = [
    11
  , 12
  , 13
  , 14
]

var x=1
  , y=2
  , z=3
Run Code Online (Sandbox Code Playgroud)

这是Haskell的默认代码样式

命令优先,您将永远不会错过逗号,请参阅此处