什么是最佳的JavaScript代码编程规范?这可能是一个众口难调的问题。那么,不妨换个问题,什么代码规范最流行?

sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果。一起来看看吧。

code convention

行末逗号对行首逗号

行末引号:

    var foo = 1,
        bar = 2,
        baz = 3;
    
    var obj = {
        foo: 1,
        bar: 2,
        baz: 3
    };

行首引号:

    var foo = 1
      , bar = 2
      , baz = 3;
    
    var obj = {
        foo: 1
      , bar: 2
      , baz: 3
    };

行末,92.345%;行首,7.655%。(基于1,100,251次提交统计。)

空格和Tab

这年头大家都爱用空格了。使用空格缩进可以保证不同的开发者、不同的编辑器设置下看到的结果是一样的。

空格,81.1 %;Tab,18.9 %。(基于2,019,550次提交统计。)

函数后是否添加空格

无空格

    function foo() {
      return "bar";
    }

有空格

    function foo () {
      return "bar";
    }

无空格,67.424 %;有空格,32.576 %。(基于1,212,488次提交统计。)

参数与括号间是否有空格

无空格

    function fn(arg1, arg2) {
    //or
    if (true) {

有空格

    function fn( arg1, arg2 ) {
      // ...
    }
    
    if ( true ) {
      // ...
    }

无空格,94.31 %;有空格,5.69 %。(基于1,514,971次提交统计。)

对象字面量中冒号周围是否有空格

冒号后有空格

    {
      foo: 1,
      bar: 2,
      baz: 3
    }

冒号后无空格

    {
      foo:1,
      bar:2,
      baz:3
    }

冒号前后均有空格

    {
      foo : 1,
      bar : 2,
      baz : 3
    }

后空格,62.955 %;无空格,22.891 %;前后空格,14.154 %。(基于1,300,035次提交统计。)

个人觉得,无空格太挤了,不利于快速分清key和value。前后空格的话,恐怕需要对齐冒号,看起来才美观,从统计数据来看,大部分程序员懒得对齐冒号(还是说,大部分程序员的IDE或编辑器不够智能?)

条件语句

有空格

    if (true) {
      //...
    }
    
    while (true) {
      //...
    }
    
    switch (v) {
      //...
    }

无空格

    if(true) {
      //...
    }
    
    while(true) {
      //...
    }
    
    switch(v) {
      //...
    }

有空格,78.276 %;无空格,21.724 %。(基于1,163,316次提交。)

单引号、双引号

单引号,56.791 %;双引号,43.209 %。(基于1,705,910次提交。)

总结

所以说,最流行的代码规范是:

  1. 行末逗号
  2. 空格缩进
  3.  函数名称后无空格
  4. 函数参数与括号间无空格
  5. 对象字面量的冒号后加空格,冒号前不加
  6. 条件语句关键字后加空格

流行的不一定是好的(比如流行性感冒),但是从交流的角度来说,按照流行的风格编写代码,可以让你的代码在大多数人看起来更习惯。

Copyright © 2014-2024 it689.com (京ICP备12032795号-2) 版权所有 Power by IT689