我最近加入了一个项目,其中使用引号作为标准。
虽然我理解这种风格的原因(线条的安全评论),但它非常不方便(温和地说)。
我有一种强烈的感觉,这不仅仅是关于品味,而且我需要比'我不喜欢它'更好的理由来说服团队不要使用这种风格。
P.S。示例代码:
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();
到目前为止的客观原因(部分来自答案,部分来自我的):
这种风格非常罕见,特别是在JavaScript学习资料和框架中。项目的新手很可能会感到不舒服,以及需要处理格式不同的项目的开发人员
IDE中的大多数自动格式化工具都不尊重此样式(不是默认情况下也不是通过配置)
各种工具/实用程序中的潜在错误,因为这些工具很可能是在定期放置的逗号上实现和测试的。示例:使用前导逗号
更新: 我们根据共同的风格自动格式化了所有项目(具体来说,根据谷歌风格指南:http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml)。 代码看起来明显更好,并且所有工具都按预期工作(IDE,Optimizers,Builders(Sencha CMD),语法验证器,......)。 这是大公司内的一个大项目,所以这不是一个微不足道的决定。此外,它损失了清晰的CVS历史 - 但最终它是值得的。
答案 0 :(得分:5)
我不知道这应该如何做出更安全的线条评论。当然,如果您评论最后一项,则避免使用尾随逗号,但如果您对第一项进行评论,则会得到一个引导逗号。中间项目你是安全的。
如果您始终使用尾随逗号,则可以在不获取前导逗号的情况下对第一项进行注释,但对最后一项进行注释将留下尾随逗号。
不同之处在于尾随逗号通常在js对象文字中被接受,而引导逗号则不是。
答案 1 :(得分:4)
我认为没关系。当您想要添加内容或删除某些内容时,会减少拼写错误。
更新一行即可,无需为其他行添加逗号或删除逗号。
var prop = {
a: 'a'
, b: 'b'
, c: 'c'
, d: 'd'
}
var arr = [
11
, 12
, 13
, 14
]
var x=1
, y=2
, z=3
这是Haskell
的默认代码样式首先命令您永远不会错过逗号,请参阅here
答案 2 :(得分:3)
如果你真的讨厌这种风格,只需正常编码:
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();
然后将其插入更改样式的formatter。 (Original Question)
然后它看起来像这样:
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();
答案 3 :(得分:1)
此格式确实会导致更清晰的差异,因为添加到列表或字典或声明不会影响包含现有元素的行。
不过,我更喜欢这种理智的格式(适用于所有现代浏览器甚至是旧版本):
{
foo: 1,
bar: 2,
baz: 3,
}
[
'foo',
'bar',
'baz',
]