JavaScript的代碼編寫格式規(guī)范指南_基礎(chǔ)知識
來源:懂視網(wǎng)
責(zé)編:小采
時間:2020-11-27 21:46:57
JavaScript的代碼編寫格式規(guī)范指南_基礎(chǔ)知識
JavaScript的代碼編寫格式規(guī)范指南_基礎(chǔ)知識:對于熟悉 C/C++ 或 Java 語言的工程師來說,JavaScript 顯得靈活,簡單易懂,對代碼的格式的要求也相對松散。很容易學(xué)習(xí),并運用到自己的代碼中。也正因為這樣,JavaScript 的編碼規(guī)范也往往被輕視,開發(fā)過程中修修補補,最終也就演變成為后續(xù)維護(hù)人員的惡夢
導(dǎo)讀JavaScript的代碼編寫格式規(guī)范指南_基礎(chǔ)知識:對于熟悉 C/C++ 或 Java 語言的工程師來說,JavaScript 顯得靈活,簡單易懂,對代碼的格式的要求也相對松散。很容易學(xué)習(xí),并運用到自己的代碼中。也正因為這樣,JavaScript 的編碼規(guī)范也往往被輕視,開發(fā)過程中修修補補,最終也就演變成為后續(xù)維護(hù)人員的惡夢

對于熟悉 C/C++ 或 Java 語言的工程師來說,JavaScript 顯得靈活,簡單易懂,對代碼的格式的要求也相對松散。很容易學(xué)習(xí),并運用到自己的代碼中。也正因為這樣,JavaScript 的編碼規(guī)范也往往被輕視,開發(fā)過程中修修補補,最終也就演變成為后續(xù)維護(hù)人員的惡夢。軟件存在的長期價值直接與編碼的質(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 不是語法很靈活嗎?變量隨時用隨時可以聲明;語句結(jié)束符可以不要;字符串和數(shù)字也可以相加;參數(shù)多一個少一個也不會報錯。沒錯,當(dāng)您從 C/C++ 和 Java 嚴(yán)格的語法規(guī)定之下,轉(zhuǎn)向 JavaScript 語言,會覺得自由了很多,輕松了很多。語法松散是 JavaScript 重要的特征。它靈活易懂,給開發(fā)人員帶來了很多方便,但如果編寫過程中不注意,代碼的調(diào)試成本和維護(hù)成本則會無形地增加。
JavaScript 編碼會隨應(yīng)被直接發(fā)送到客戶端的瀏覽器,代碼規(guī)范不只是代碼質(zhì)量的保證,也影響到產(chǎn)品的長期信譽。希望 JavaScript 編程語言的規(guī)范問題也能同樣引起更多朋友的關(guān)注。
JavaScript 編碼規(guī)范建議
本文就 JavaScript 編碼過程中涉及的排版、命名、聲明、作用域、及一些特殊符號的使用等方面,根據(jù)個人在學(xué)習(xí)工作中的總結(jié),給出自己的一些建議,并分析其中緣由,以供參考。
JavaScript 文件引用
JavaScript 程序應(yīng)該盡量放在 .js 的文件中,需要調(diào)用的時候在 HTML 中以
輸出驚奇地發(fā)現(xiàn),用 var 聲明過的變量 valueA 和沒有聲明的變量 valueB 是有區(qū)別的。特別需要注意的是,在函數(shù)內(nèi)部用 var 聲明的變量為局部變量,這樣可以有效地避免因局部變量和全局變量同名而產(chǎn)生的錯誤。
函數(shù)的聲明
函數(shù)也應(yīng)在調(diào)用前進(jìn)行聲明,內(nèi)部函數(shù)應(yīng)在 var 聲明內(nèi)部變量的語句之后聲明,可以清晰地表明內(nèi)部變量和內(nèi)部函數(shù)的作用域。
此外,函數(shù)名緊接左括號'('之間,而右括號')'和后面的'{'之間要有個空格,以清楚地顯示函數(shù)名以其參數(shù)部分,和函數(shù)體的開始。若函數(shù)為匿名 / 無名函數(shù),則 function 關(guān)鍵字和左括號'('之間要留空格,否則可能誤認(rèn)為該函數(shù)的函數(shù)名為 function。
清單 4. 內(nèi)部函數(shù)聲明
輸出可以看出,inF() 函數(shù)僅在 outF() 函數(shù)的內(nèi)部生效,局部變量 innerA 對內(nèi)部函數(shù)的作用域生效。這樣的編碼方式使得變量和函數(shù)的作用域變得清晰。
語句
對于簡單語句而言,需要提及的仍然是分號必要性,同時,一行最多有一個語句。如果一個賦值語句是用函數(shù)和對象來賦值,可能需要跨多行,一定切記要在賦值語句末加上分號。
這是因為 JavaScript 中,所有表達(dá)式都可以當(dāng)語句,遇換行符時會解析為表達(dá)式的結(jié)束,此時不規(guī)范的換行和分號的丟失,可能引入新的錯誤。
對于復(fù)合語句,if, for, while, do, switch, try … catch 等代碼體,函數(shù)定義的函數(shù)體,對象的定義等都需要放在花括號'{}'里面。
'{' 應(yīng)在行末,標(biāo)志代碼塊的開始。
'}' 應(yīng)在一行開頭,標(biāo)志代碼塊的結(jié)束,同時需要和'{'所在行的開始對齊,以表明一個完整的復(fù)合語句段。這樣可以極大地提高代碼的可閱讀性,控制邏輯能清晰地表現(xiàn)出來。
被包含的代碼段應(yīng)該再縮進(jìn) 4 個空格。
即使被包含的代碼段只有一句,也應(yīng)該用花括號'{}'包含。盡管不用花括號代碼也不會錯,但如若需要增加語句的話,則較容易因花括號遺漏而引起的編譯錯誤或邏輯錯誤。
return語句在使用時也需慎重,如果用表達(dá)式的執(zhí)行作為返回值,請把表達(dá)式和 return 放在同一行中,以免換行符被誤解析為語句的結(jié)束而引起返回錯誤。return 關(guān)鍵字后若沒有返回表達(dá)式,則返回 undefined。構(gòu)造器的默認(rèn)返回值為 this。
清單 5. return 表達(dá)式
輸出相等的字樣。這是因為編譯器對兩個變量進(jìn)行比較時,因為他們的類型不同,而自動地將 valueB 轉(zhuǎn)換成字符串,而后再和 valueA 進(jìn)行比較的。用'==='得到的判斷結(jié)果正和預(yù)期的結(jié)果相符。
+
加號'+'也同樣是程序員所熟知的操作符之一。JavaScript 和其他編程語言不同的是,在 JavaScript 中,'+'除了表示數(shù)字值相加,字符串相連接以外,還可以作一元運算符用,把字符串轉(zhuǎn)換為數(shù)字。因而如果使用不當(dāng),則可能與自增符'++'混淆而引起計算錯誤。這一點,在清單 7 中可以清楚地看出。
清單 7. 巧用 + 號