對于熟悉 C/C++ 或 Java 語言的工程師來說,JavaScript 顯得靈活,簡單易懂,對代碼的格式的要求也相對松散。很容易學(xué)習(xí),并運(yùn)用到自己的代碼中。也正因?yàn)檫@樣,JavaScript 的編碼規(guī)范也往往被輕視,開發(fā)過程中修修補(bǔ)補(bǔ),最終也就演變成為后續(xù)維護(hù)人員的惡夢。軟件存在的長期價(jià)值直接與編碼的質(zhì)量成比例。編碼規(guī)范能幫助我們降低編程中不必要的麻煩。而 JavaScript 代碼是直接發(fā)送給客戶瀏覽器的,直接與客戶見面,編碼的質(zhì)量更應(yīng)該受到關(guān)注。
本文淺談 JavaScript 編程中關(guān)于編碼規(guī)范的問題,分析其中緣由。希望引起更多 Web 開發(fā)人員對 JavaScript 編碼規(guī)范問題的關(guān)注和對軟件產(chǎn)品質(zhì)量問題的重視。
前言
提及 C/C++ 和 Java 編碼規(guī)范,相信許多工程師并不生疏。但說到 JavaScript 語言的編碼規(guī)范,也許您會忍俊不禁。JavaScript 不是語法很靈活嗎?變量隨時(shí)用隨時(shí)可以聲明;語句結(jié)束符可以不要;字符串和數(shù)字也可以相加;參數(shù)多一個(gè)少一個(gè)也不會報(bào)錯(cuò)。沒錯(cuò),當(dāng)您從 C/C++ 和 Java 嚴(yán)格的語法規(guī)定之下,轉(zhuǎn)向 JavaScript 語言,會覺得自由了很多,輕松了很多。語法松散是 JavaScript 重要的特征。它靈活易懂,給開發(fā)人員帶來了很多方便,但如果編寫過程中不注意,代碼的調(diào)試成本和維護(hù)成本則會無形地增加。
JavaScript 編碼會隨應(yīng)被直接發(fā)送到客戶端的瀏覽器,代碼規(guī)范不只是代碼質(zhì)量的保證,也影響到產(chǎn)品的長期信譽(yù)。希望 JavaScript 編程語言的規(guī)范問題也能同樣引起更多朋友的關(guān)注。
JavaScript 編碼規(guī)范建議
本文就 JavaScript 編碼過程中涉及的排版、命名、聲明、作用域、及一些特殊符號的使用等方面,根據(jù)個(gè)人在學(xué)習(xí)工作中的總結(jié),給出自己的一些建議,并分析其中緣由,以供參考。
JavaScript 文件引用
JavaScript 程序應(yīng)該盡量放在 .js 的文件中,需要調(diào)用的時(shí)候在 HTML 中以 <script src="filename.js"> 的形式包含進(jìn)來。JavaScript 代碼若不是該 HTML 文件所專用的,則應(yīng)盡量避免在 HTML 文件中直接編寫 JavaScript 代碼。因?yàn)檫@樣會大大增加 HTML 文件的大小,無益于代碼的壓縮和緩存的使用。
另外,<script src="filename.js"> 標(biāo)簽應(yīng)盡量放在文件的后面。這樣會降低因加載 JavaScript 代碼而影響頁面中其它組件的加載時(shí)間。
代碼排版
行長度
每行代碼應(yīng)小于 80 個(gè)字符。如果代碼較長,應(yīng)盡量選擇換行,下一行代碼應(yīng)縮進(jìn) 8 個(gè)空格。這樣可以使代碼排版整齊,減輕閱讀代碼的疲勞感。換行縮進(jìn) 8 個(gè)空格可以和代碼段的縮進(jìn) 4 個(gè)空格區(qū)分開,以增強(qiáng)代碼的可閱讀性。
行結(jié)束
JavaScript 語句應(yīng)該以分號結(jié)束。但大多數(shù)瀏覽器允許不寫分號,只要在本應(yīng)是分號的地方有一個(gè)換行符就行。但是如果代碼行較長需要換行的時(shí)候,有哪些注意事項(xiàng)呢?換行應(yīng)選擇在操作符和標(biāo)點(diǎn)符號之后,最好是在逗號','之后,而不要在變量名、字符串、數(shù)字、或')' ']' '++' '--'等符號之后換行。
這樣可以有效的防止拷貝、粘貼而引起的錯(cuò)誤,并可有效地增強(qiáng)代碼的可閱讀性。代碼的輸出符合我們的期望。但就寫法而言,對 valueB 的賦值語句是在變量 valueA 之后進(jìn)行的換行,這很容易被誤解為 valueB=ValueA,給閱讀造成障礙。而對 valueC 的復(fù)制語句是在'+'之后進(jìn)行的換行,就容易理解的多。這也是本文所提倡的換行方式。