【问题标题】:JavaScript code convention - object declarationJavaScript 代码约定 - 对象声明
【发布时间】:2013-03-05 18:10:09
【问题描述】:

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

在声明对象/变量时,冒号/等号垂直对齐的优缺点是什么?

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

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

【问题讨论】:

  • 更容易阅读,就是这样。这是“样式指南”中针对大多数事物提出的论点。

标签: javascript coding-style conventions


【解决方案1】:

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

缺点是当使用 find 来查找变量的值时,因为空格比需要的多。因此,搜索variablename = 可能会一无所获,因为它实际上被定义为variablename[space][space][space]=

【讨论】:

  • 我认为这大概是唯一可能的答案,但这难道不适用于样式指南中的所有内容吗?
【解决方案2】:

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

想象一下,我继承了您的系统,或者必须继续使用它。在此过程中,我需要弄清楚a 变量是什么。该系统有一个包含很多行的庞大代码库,因此不能简单地滚动并查看每一行。

如果代码标准是variable = 123,那么我可以简单地为variable[SPACE]=[SPACE] 执行“文件搜索”。

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

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

【讨论】:

  • 不应该是variable\s*=吗?谁说有空间呢?
  • @TedHopp 我只是在使用 OP 的标准,它似乎在等号/冒号之前跟随一个空格,但你是对的。我已经更新了我的答案以说明您的观点。
【解决方案3】:

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

当涉及到将代码传递给另一个程序员来维护或修改某些东西,或者如果您在很长一段时间后重新使用它并且不记得代码时,这主要是一种长期的好处。

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

此外,将变量彼此(和值)对齐可以使代码看起来非常整洁,但这样做很麻烦,而且大多数人不这样做。您将对齐行的开头,但之后不会对齐其他任何内容。

想象一下,如果某些事情发生了变化并且您必须重新调整所有内容,会发生什么。

不好。浪费时间可以花在编程上。

【讨论】:

  • 当然逗号应该放在行尾,但这是一个很小的区别。我同意您的观点,即大多数人在每行上使用单独的 var 而不是将它们组合起来。我个人是这样做的,但有些人喜欢这种编码方式,我们对此无能为力。这就像连接一个字符串,有些人做“一些文本”+变量+“一些更多的文本”,有些人使用字符串格式来为他们做这项工作。偏好问题......但总的来说,如果我们考虑这种风格。上面的样式比 var a = 1, b = 2, c = 3; 更容易阅读。但我同意你的看法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2022-07-05
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
相关资源
最近更新 更多