我正在開發JavaScript風格指南,我意識到可以應用於代碼約定的唯一規則是一致的,但我對這個問題很好奇,因爲沒有任何主要框架使用這個約定。JavaScript代碼約定 - 對象聲明
聲明對象/變量時垂直對齊冒號/等號有什麼優點和缺點?
var a = 1,
ab = 2,
abc = 3;
var obj = {
a : 1,
ab : 2,
abc : 3
};
我正在開發JavaScript風格指南,我意識到可以應用於代碼約定的唯一規則是一致的,但我對這個問題很好奇,因爲沒有任何主要框架使用這個約定。JavaScript代碼約定 - 對象聲明
聲明對象/變量時垂直對齊冒號/等號有什麼優點和缺點?
var a = 1,
ab = 2,
abc = 3;
var obj = {
a : 1,
ab : 2,
abc : 3
};
更好的代碼可讀性。就是這樣。
缺點是當使用find查找變量的值時,由於空間比需要的多。因此,搜索variablename =
可能不會導致任何結果,因爲它實際上被定義爲variablename[space][space][space]=
。
我認爲這是唯一可能的答案,但不適用於在風格指南中找到的所有內容。 – 2013-03-05 18:14:02
爲什麼downvote? – 2013-03-05 18:17:57
將每個變量放在一個單獨的行中會使您在再次閱讀(或其他人閱讀時)時受益,因爲這將是明顯的變量,因此增加可讀性是主要因素。
從長遠來看,它主要是將代碼傳遞給另一位程序員以維護或修改某些內容,或者如果您在很長一段時間後回到代碼並且無法記住代碼,那麼這種做法是有益的。
這在大多數語言中都是一樣的。
將變量與對方(和值)對齊可以使代碼看起來非常整齊,但它很麻煩,大多數人不這樣做。你會對齊行的開始,但之後沒有任何其他事情。
想象一下,如果發生了一些變化,你必須重新調整一切,會發生什麼。
不好。浪費可能花費在編程上的時間。
當然,逗號應該在行尾,但這是一個小小的區別。我同意你的觀點,即大多數人在每行上使用單獨的變量,而不是將它們聯合起來。我個人這樣做,但有些人喜歡這種編碼方式,我們無能爲力。這就像連接一個字符串,一些人做「一些文本」+變量+「一些更多的文本」,有些人使用字符串格式來爲他們完成工作。 優先事項... 但總的來說,如果我們考慮這種風格。讀取上述樣式比代替 var a = 1,b = 2,c = 3更容易; 但我同意你的看法。 – 2013-03-05 18:20:50
代碼搜索將是一個明顯的缺點:
想象一下,我繼承了你的系統,或者必須在它的工作。在進展中,我需要弄清楚a
變量是什麼。該系統有一個巨大的代碼庫,包含很多行,因此只需滾動瀏覽並查看每一行就不是一種選擇。
如果代碼標準是variable = 123
,那麼我可以簡單地爲variable[SPACE]=[SPACE]
做一個「搜索文件」。
這是您發佈的標準可能是一個壞主意的地方。我不知道變量名和等號之間有多少空格。當然,我可以搜索a[SPACE]=
,a[SPACE][SPACE]=
,a[SPACE][SPACE][SPACE]=
等,但它會更難。
搜索聲明的唯一方法是在variable\s+=
(一個或多個空格)或variable\s*=
(零個或多個空格)上執行正則表達式搜索, ,這將花費更長時間,並且需要具有Regex搜索功能的編輯器。
不應該是'variable \ s * ='?誰會說有什麼空間? – 2013-03-05 18:17:54
@TedHopp我只是爲了OP的標準,似乎在等號/冒號之前的空格後面,但你說得對。我已經更新了我的答案以指定您的觀點。 – h2ooooooo 2013-03-05 18:19:05
更容易閱讀,就是這樣。在「風格指南」中爲大多數事物提出的論點是什麼。 – Chad 2013-03-05 18:23:56