为什么需要javascript编码约定和样式?

时间:2012-05-31 07:12:54

标签: javascript coding-style

假设我编写了一个javscript函数:

function(){
    var a=1;
    var sum=1;
    for(var i=0;i<6;i++){
       sum=sum+a+1;
    }
    console.log(sum);
}

然而,有人建议像这样编写这个函数:

function () {

   var a = 1;
   var sum = 1;
   for (var i = 0; i < 6; i++) {
      var sum = sum + a +1;
   }
   console.log(sum);

}

有更多空白,我知道这个规则,但我不知道它是如何工作的,或者我可以从中受益?

8 个答案:

答案 0 :(得分:1)

编码风格的好处是增强了可读性。你决定坚持什么样的风格并不重要,只要你坚持统一的风格,并且可以与你的同事就其可读性达成一致,这并不总是那么容易。

答案 1 :(得分:0)

您可能应该阅读有关javascript闭包的更多信息,并且可以关注"Google Javascript Style Guide"

答案 2 :(得分:0)

遵循统一的样式指南,编码使代码更易于阅读,并帮助您编写漂亮的代码,以及其他人理解(和爱好!)您的代码。

当然网上有大量资源(只需通过谷歌搜索一段时间获得一些javascript指南或指南),但这个很容易,简单和完整:

http://javascript.crockford.com/code.html

答案 3 :(得分:0)

样式是一个意见问题,但在一般意义上,选择一些样式并在整个代码中始终遵循它使得它更容易阅读(两者都是对于其他人和你后来回来的时候)。

根据我的经验,大多数人会发现使用额外空格更容易阅读代码,如第二个示例所示。

我不喜欢在function()之间加一个空格。或者,如果有函数名称,我不会在名称和括号之间添加空格:function someName()

另请注意,对于具有语法突出显示功能的现代代码编辑器(如Stack Overflow),它比以前更容易读取没有空格的代码。比较以下两个:

for(var i=0;i<6;i++)

for(var i=0;i<6;i++)

阅读和编辑后者,全部用黑色和白色,真的让我烦恼,但我不介意彩色版本在任何地方附近。我仍然喜欢它有额外的空间。

我会对你的功能进行一些其他修改:

function() {
    var a = 1,
        sum = 1,
        i;

    for(i = 0; i < 6; i++){
       sum += a + 1;
    }
    console.log(sum);
}

答案 4 :(得分:0)

这不是一个规则。它只是编码会议风格。如果你不想要,你不需要遵循。但这种风格可以使您的代码更易读,更易于维护和更清晰。对我来说,我更喜欢空间而不是狭窄的字母。同样,这不是一个规则。

答案 5 :(得分:0)

编码风格总是很个人化;一个人喜欢精简代码,以便他们可以在一个屏幕上尽可能多地看到,另一个人需要在一个单独的行上打开和关闭括号等。

当只为自己编码时,你应该选择最适合自己的东西。但是当你开始在团队中工作而其他人必须维护你的代码而反之亦然时,就一种编码风格达成一致就变得很重要......这很难。

我参与了编码风格的讨论,他们非常不舒服,因为你放弃了一些个人偏好,尽管是为了更大的利益。在短暂的不适之后,你会习惯它; - )

答案 6 :(得分:0)

这些编码约定适用于人类,它们提高了可读性。假设我写了这样一个表达式:

x=(a*b/2)+m-n+c*(d/e);

看起来笨拙且难以阅读。如果我们在这样的运算符周围使用空格会更容易理解:

x = (a * b / 2) + m - n + c * (d / e);

再次使用空白行通过表示节来增加可读性。例如:

function foo() {
    var a;
    var b;
    // a blank line here to specify the end of variable declarations
    if (some_cond) {

    } else if (another_cond) {

    }
    // another blank line to specify end of some logic
    //more codes here;
}

如果你不遵循这些指导方针,并且所有团队成员都不同意某些惯例,那么长期维护一个大项目将非常困难。

最后请注意,这些惯例不适用于编译器,而是适用于人类。这就是为什么它被称为编码指南,而不是语言语法。

答案 7 :(得分:0)

  1. 第二个版本不等同于第一个版本,因为它声明了一个内部'sum'变量,除非Javascript没有按照它所说的那样做。

  2. 多余的空白行没有贡献任何东西恕我直言,但我可能不会死在他们的沟里。然而,同样有效的关注点是下载速度,建议会使其更糟糕。