現(xiàn)如今最流行的JavaScript代碼規(guī)范
什么是最佳的JavaScript代碼編程規(guī)范?這可能是一個(gè)眾口難調(diào)的問題。那么,不妨換個(gè)問題,什么代碼規(guī)范最流行?
sideeffect.kr通過分析GitHub上托管的開源代碼,得出了一些有趣的結(jié)果。一起來看看吧。

行末逗號(hào)對(duì)行首逗號(hào)
行末引號(hào):
var foo = 1,
bar = 2,
baz = 3;
var obj = {
foo: 1,
bar: 2,
baz: 3
};
行首引號(hào):
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ù)與括號(hào)間是否有空格
無空格
function fn(arg1, arg2) {
//or
if (true) {
有空格
function fn( arg1, arg2 ) {
// ...
}
if ( true ) {
// ...
}
無空格,94.31 %;有空格,5.69 %。(基于1,514,971次提交統(tǒng)計(jì)。)
對(duì)象字面量中冒號(hào)周圍是否有空格
冒號(hào)后有空格
{
foo: 1,
bar: 2,
baz: 3
}
冒號(hào)后無空格
{
foo:1,
bar:2,
baz:3
}
冒號(hào)前后均有空格
{
foo : 1,
bar : 2,
baz : 3
}
后空格,62.955 %;無空格,22.891 %;前后空格,14.154 %。(基于1,300,035次提交統(tǒng)計(jì)。)
個(gè)人覺得,無空格太擠了,不利于快速分清key和value。前后空格的話,恐怕需要對(duì)齊冒號(hào),看起來才美觀,從統(tǒng)計(jì)數(shù)據(jù)來看,大部分程序員懶得對(duì)齊冒號(hào)(還是說,大部分程序員的IDE或編輯器不夠智能?)
條件語句
有空格
if (true) {
//...
}
while (true) {
//...
}
switch (v) {
//...
}
無空格
if(true) {
//...
}
while(true) {
//...
}
switch(v) {
//...
}
有空格,78.276 %;無空格,21.724 %。(基于1,163,316次提交。)
單引號(hào)、雙引號(hào)
單引號(hào),56.791 %;雙引號(hào),43.209 %。(基于1,705,910次提交。)
總結(jié)
所以說,最流行的代碼規(guī)范是:
•行末逗號(hào)
•空格縮進(jìn)
•函數(shù)名稱后無空格
•函數(shù)參數(shù)與括號(hào)間無空格
•對(duì)象字面量的冒號(hào)后加空格,冒號(hào)前不加
•條件語句關(guān)鍵字后加空格
流行的不一定是好的(比如流行性感冒),但是從交流的角度來說,按照流行的風(fēng)格編寫代碼,可以讓你的代碼在大多數(shù)人看起來更習(xí)慣。
相關(guān)文章
JavaScript入門教程(6) Window窗口對(duì)象
他是JavaScript中最大的對(duì)象,它描述的是一個(gè)瀏覽器窗口。一般要引用它的屬性和方法時(shí),不需要用“window.xxx”這種形式,而直接使用“xxx”。一個(gè)框架頁(yè)面也是一個(gè)窗口。2009-01-01
深入了解JavaScript中的this關(guān)鍵字指向
這篇文章主要介紹了深入了解JavaScript中的this關(guān)鍵字指向,在大多情況下,this出現(xiàn)在函數(shù)中,this指向什么,跟函數(shù)定義的位置無關(guān),跟函數(shù)調(diào)用方式有關(guān),需要的朋友可以參考下2023-07-07
簡(jiǎn)略說明Javascript中的= =(等于)與= = =(全等于)區(qū)別
本篇文章簡(jiǎn)略說明了Javascript中的= =(等于)與= = =(全等于)區(qū)別,有需要的朋友可以參考一下2013-04-04
Javascript基礎(chǔ) 函數(shù)“重載” 詳細(xì)介紹
這篇文章介紹了Javascript基礎(chǔ) 函數(shù)“重載” ,有需要的朋友可以參考一下2013-10-10

