最佳的JavaScript代码编程规范? 什么代码规范最流行?

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

ccode

行末逗号对行首逗号

行末逗号:

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) {//orif (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次提交 )

总结

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

  • 行末逗号
  • 空格缩进
  • 函数名称后无空格
  • 函数参数与括号间无空格
  • 对象字面量的冒号后加空格 冒号前不加
  • 条件语句关键字后加空格

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