JS代碼自動(dòng)排版工具是一個(gè)幫助程序源來(lái)規(guī)范代碼的實(shí)用工具,這樣子寫(xiě)出的程序源代碼更加美觀,也方便之后查看。
我們都知道javascript使用function來(lái)管理自己的作用域,一個(gè)定義在函數(shù)內(nèi)的變量對(duì)外是不可見(jiàn)的,這有點(diǎn)類(lèi)似于其它語(yǔ)言里的私有變量。對(duì)于javascript的執(zhí)行環(huán)境來(lái)說(shuō)一般都有一個(gè)全局變量,在所有的函數(shù)外可以用this來(lái)指引,例如在瀏覽器端是window。但是當(dāng)過(guò)多的在全局執(zhí)行環(huán)境下定義變量會(huì)造成各種苦逼的事情,比方說(shuō)你定義的變量被其他人定義的同名變量覆蓋掉,或者你未來(lái)定義的變量把你過(guò)去定義的同名變量也覆蓋掉,而且過(guò)多的全局變量放在執(zhí)行對(duì)戰(zhàn)里還會(huì)造成內(nèi)存的浪費(fèi)等等不優(yōu)化的情況發(fā)生。
js代碼編寫(xiě)規(guī)范
1.嵌入規(guī)則
Javascript程序應(yīng)該盡量放在.js的文件中,需要調(diào)用的時(shí)候在頁(yè)面中以<script src="filename.js">的形式包含進(jìn)來(lái)。Javascript代碼若不是該頁(yè)面專(zhuān)用的,則應(yīng)盡量避免在頁(yè)面中直接編寫(xiě)Javascript代碼。
2.對(duì)齊縮進(jìn)與換行
a) 縮進(jìn)
在同一系統(tǒng)中應(yīng)采用同一種縮進(jìn)標(biāo)準(zhǔn),本文提倡縮進(jìn)大小為4個(gè)空格。各編譯器對(duì)Tab鍵所代替的空白大小定義不同。建議在設(shè)置開(kāi)發(fā)環(huán)境時(shí),將編輯器里的Tab快捷鍵重新設(shè)置成4個(gè)空格。多數(shù)編譯器提供了此功能。否則建議按4次空格來(lái)進(jìn)行縮進(jìn)。
b) 換行
在以下位置必須換行:
每個(gè)獨(dú)立語(yǔ)句結(jié)束后;
if、else、catch、finally、while等關(guān)鍵字前;
運(yùn)算符處換行時(shí),運(yùn)算符必須在新行的行首。
對(duì)于因?yàn)閱涡虚L(zhǎng)度超過(guò)限制時(shí)產(chǎn)生的換行,參考行長(zhǎng)度中的策略進(jìn)行分隔。
1).字符串過(guò)長(zhǎng)截?cái)?/p>
每行代碼應(yīng)小于80個(gè)字符。若代碼較長(zhǎng)應(yīng)盡量換行,換行應(yīng)選擇在操作符和標(biāo)點(diǎn)符號(hào)之后,最好是在分號(hào)“;”或逗號(hào)“,”之后。下一行代碼相對(duì)上一行縮進(jìn)4個(gè)空格。這樣可以有效防止復(fù)制粘貼引起的代碼缺失等錯(cuò)誤并增強(qiáng)可讀性。
按一定長(zhǎng)度截?cái)嘧址⑹褂?運(yùn)算符進(jìn)行連接。分隔字符串盡量按語(yǔ)義進(jìn)行,如不要在一個(gè)完整的名詞中間斷開(kāi)。特別的,對(duì)于HTML片段的拼接,通過(guò)縮進(jìn),保持和HTML相同的結(jié)構(gòu):
也可使用數(shù)組來(lái)進(jìn)行拼接,相對(duì)+運(yùn)算更容易調(diào)整縮進(jìn):
2).三元運(yùn)算符過(guò)長(zhǎng)
三元運(yùn)算符由3部分組成,因此其換行應(yīng)當(dāng)根據(jù)每個(gè)部分的長(zhǎng)度不同,形成3種不同的情況:
不得出現(xiàn)以下情況:
3).過(guò)長(zhǎng)的邏輯條件組合
當(dāng)因?yàn)檩^復(fù)雜的邏輯條件組合導(dǎo)致80個(gè)字符無(wú)法滿(mǎn)足需求時(shí),應(yīng)當(dāng)將每個(gè)條件獨(dú)立一行,邏輯運(yùn)算符放置在行首進(jìn)行分隔,或?qū)⒉糠诌壿嫲催壿嫿M合進(jìn)行分隔。最終將右括號(hào))與左大括號(hào){放在獨(dú)立一行,保證與if內(nèi)語(yǔ)句塊能容易視覺(jué)辨識(shí)。如:
4).過(guò)長(zhǎng)的JSON和數(shù)組
如果對(duì)象屬性較多導(dǎo)致每個(gè)屬性一行占用空間過(guò)大,可以按語(yǔ)義或邏輯進(jìn)行分組的組織,如:
通過(guò)5個(gè)一組的分組,將每一行控制在合理的范圍內(nèi),并且按邏輯進(jìn)行了切分。 對(duì)于項(xiàng)目較多的數(shù)組,也可以采用相同的方法,如:
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版