最流行的JavaScript代碼規(guī)范
什么是***的JavaScript代碼編程規(guī)范?這可能是一個(gè)眾口難調(diào)的問題。那么,不妨換個(gè)問題,什么代碼規(guī)范***?
sideeffect.kr通過分析GitHub上托管的開源代碼,得出了一些有趣的結(jié)果。一起來看看吧。
行末逗號對行首逗號
行末引號:
- 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次提交統(tǒng)計(jì)。)
空格和Tab
這年頭大家都愛用空格了。使用空格縮進(jìn)可以保證不同的開發(fā)者、不同的編輯器設(shè)置下看到的結(jié)果是一樣的。
空格,81.1 %;Tab,18.9 %。(基于2,019,550次提交統(tǒng)計(jì)。)
函數(shù)后是否添加空格
無空格
- function foo() {
 - return "bar";
 - }
 
有空格
- function foo () {
 - return "bar";
 - }
 
無空格,67.424 %;有空格,32.576 %。(基于1,212,488次提交統(tǒng)計(jì)。)
參數(shù)與括號間是否有空格
無空格
- function fn(arg1, arg2) {
 - //or
 - if (true) {
 
有空格
- function fn( arg1, arg2 ) {
 - // ...
 - }
 - if ( true ) {
 - // ...
 - }
 
無空格,94.31 %;有空格,5.69 %。(基于1,514,971次提交統(tǒng)計(jì)。)
對象字面量中冒號周圍是否有空格
冒號后有空格
- {
 - 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次提交統(tǒng)計(jì)。)
個(gè)人覺得,無空格太擠了,不利于快速分清key和value。前后空格的話,恐怕需要對齊冒號,看起來才美觀,從統(tǒng)計(jì)數(shù)據(jù)來看,大部分程序員懶得對齊冒號(還是說,大部分程序員的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次提交。)
總結(jié)
所以說,***的代碼規(guī)范是:
- 行末逗號
 - 空格縮進(jìn)
 - 函數(shù)名稱后無空格
 - 函數(shù)參數(shù)與括號間無空格
 - 對象字面量的冒號后加空格,冒號前不加
 - 條件語句關(guān)鍵字后加空格
 
流行的不一定是好的(比如流行性感冒),但是從交流的角度來說,按照流行的風(fēng)格編寫代碼,可以讓你的代碼在大多數(shù)人看起來更習(xí)慣。















 
 
 








 
 
 
 