JavaScript代码约定-对象声明

JavaScript代码约定-对象声明,javascript,coding-style,conventions,Javascript,Coding Style,Conventions,我正在开发一个JavaScript风格的指南,我知道可以应用于代码约定的唯一规则是一致性,但我对这个问题很好奇,因为没有一个主要框架使用这个约定 在声明对象/变量时,垂直对齐冒号/相等有哪些优点和缺点 var a = 1, ab = 2, abc = 3; var obj = { a : 1, ab : 2, abc : 3 }; 更好的代码可读性。就这样 缺点是使用find查找变量的值时,因为空间比需要的空间多。因此,搜索variable

我正在开发一个JavaScript风格的指南,我知道可以应用于代码约定的唯一规则是一致性,但我对这个问题很好奇,因为没有一个主要框架使用这个约定

在声明对象/变量时,垂直对齐冒号/相等有哪些优点和缺点

var a   = 1,
    ab  = 2,
    abc = 3;

var obj = {
    a   : 1,
    ab  : 2,
    abc : 3
};

更好的代码可读性。就这样


缺点是使用find查找变量的值时,因为空间比需要的空间多。因此,搜索
variablename=
可能不会产生任何结果,因为它实际上被定义为
variablename[space][space][space][space]=

将每个变量放在单独的行中,当您再次阅读(或其他人阅读)它时,您将受益匪浅,因为很明显,这些变量是不同的,因此,提高可读性是主要因素

从长远来看,这主要是一个好处,因为它涉及到将代码传递给另一个程序员来维护或修改某个东西,或者如果您在很长一段时间后返回到它,并且记不起代码

在大多数语言中都是一样的

同时,将变量相互对齐(以及值)可以使代码看起来非常整洁,但这是一件非常麻烦的事情,大多数人都不会这么做。您可以对齐行的开头,但之后不对齐任何其他内容

想象一下,如果发生了变化,你不得不重新调整一切,会发生什么


不太好。浪费编程时间。

在代码中搜索是一个明显的缺点:

想象一下,我继承了您的系统,或者必须对其进行操作。在这个过程中,我需要弄清楚
变量是什么。该系统有一个庞大的代码库,有很多行,所以简单地滚动浏览并查看每一行不是一个选项

如果代码标准是
variable=123
,那么我可以简单地在文件中搜索
variable[SPACE]=[SPACE]

这就是你发布的标准可能是个坏主意的地方。我不知道变量名和等号之间有多少空格。当然,我可以搜索
a[SPACE]=
a[SPACE][SPACE]=
a[SPACE][SPACE][SPACE]=
等等,但这要困难得多


搜索声明的唯一方法(在没有“查找声明”帮助程序的原始代码编辑器中)是对
变量\s+=
(一个或多个空格)或
变量\s*=
(零个或多个空格)执行正则表达式搜索,这将花费更长的时间,并且需要一个具有正则表达式搜索功能的编辑器。

我认为这是唯一可能的答案,但这不适用于在样式指南中找到的所有内容吗?这不应该是
variable\s*=
?谁能说这里有空格?@TedHopp我只是选择OP的标准,它似乎遵循等号/冒号之前的空格,但你是对的。我已经更新了我的答案来说明你的观点。当然逗号应该放在这行的末尾,但这只是一个小区别。我同意你的观点,大多数人在每一行上使用单独的var,而不是将它们合并。我个人是这样做的,但是有人喜欢这种编码方式,我们对此无能为力。这就像连接一个字符串,有些人做“一些文本”+变量+“一些更多的文本”,有些人使用字符串格式来完成这项工作。优先权问题。。。但一般来说,如果我们考虑这种风格。更容易阅读上述样式,而不是var a=1、b=2、c=3;但我同意你的看法,就是更容易阅读。这是“风格指南”中针对大多数事情提出的论点。