對於熟悉 C/C++ 或 Java 語言的工程師來說javascript 顯得靈活簡單易懂對代碼的格式的要求也相對松散很容易學習並運用到自己的代碼中也正因為這樣javascript 的編碼規范也往往被輕視開發過程中修修補補最終也就演變成為後續維護人員的惡夢軟件存在的長期價值直接與編碼的質量成比例編碼規范能幫助我們降低編程中不必要的麻煩而 javascript 代碼是直接發送給客戶浏覽器的直接與客戶見面編碼的質量更應該受到關注
本文淺談 javascript 編程中關於編碼規范的問題分析其中緣由希望引起更多 Web 開發人員對 javascript 編碼規范問題的關注和對軟件產品質量問題的重視
前言
提及 C/C++ 和 Java 編碼規范相信許多工程師並不生疏但說到 javascript 語言的編碼規范也許您會忍俊不禁javascript 不是語法很靈活嗎?變量隨時用隨時可以聲明;語句結束符可以不要;字符串和數字也可以相加;參數多一個少一個也不會報錯沒錯當您從 C/C++ 和 Java 嚴格的語法規定之下轉向 javascript 語言會覺得自由了很多輕松了很多語法松散是 javascript 重要的特征它靈活易懂給開發人員帶來了很多方便但如果編寫過程中不注意代碼的調試成本和維護成本則會無形地增加
javascript 編碼會隨應被直接發送到客戶端的浏覽器代碼規范不只是代碼質量的保證也影響到產品的長期信譽希望 javascript 編程語言的規范問題也能同樣引起更多朋友的關注
javascript 編碼規范建議
本文就 javascript 編碼過程中涉及的排版命名聲明作用域及一些特殊符號的使用等方面根據個人在學習工作中的總結給出自己的一些建議並分析其中緣由以供參考
javascript 文件引用
javascript 程序應該盡量放在 js 的文件中需要調用的時候在 HTML 中以
從清單 的輸出可以看出inF() 函數僅在 outF() 函數的內部生效局部變量 innerA 對內部函數的作用域生效這樣的編碼方式使得變量和函數的作用域變得清晰
語句
對於簡單語句而言需要提及的仍然是分號必要性同時一行最多有一個語句如果一個賦值語句是用函數和對象來賦值可能需要跨多行一定切記要在賦值語句末加上分號
這是因為 javascript 中所有表達式都可以當語句遇換行符時會解析為表達式的結束此時不規范的換行和分號的丟失可能引入新的錯誤
對於復合語句if for while do switch try … catch 等代碼體函數定義的函數體對象的定義等都需要放在花括號{}裡面
{ 應在行末標志代碼塊的開始
} 應在一行開頭標志代碼塊的結束同時需要和{所在行的開始對齊以表明一個完整的復合語句段這樣可以極大地提高代碼的可閱讀性控制邏輯能清晰地表現出來
被包含的代碼段應該再縮進 個空格
即使被包含的代碼段只有一句也應該用花括號{}包含盡管不用花括號代碼也不會錯但如若需要增加語句的話則較容易因花括號遺漏而引起的編譯錯誤或邏輯錯誤
return語句在使用時也需慎重如果用表達式的執行作為返回值請把表達式和 return 放在同一行中以免換行符被誤解析為語句的結束而引起返回錯誤return 關鍵字後若沒有返回表達式則返回 undefined構造器的默認返回值為 this
清單 return 表達式
在清單 中顯示了因返回表達式沒有和 return 關鍵字放在同一行而引起的返回錯誤需重視
特殊符號
空白符
適當的空白行可以大大提高代碼的可閱讀性可以使代碼邏輯更清晰易懂同時在表達式中適當的留空白也會給代碼的閱讀帶來方便
關鍵字的後面如有括號則最好在關鍵字和左括號(之間留空白如 for if while 等而函數名和括號之間則不宜留空白但若是匿名函數則必須在 function 和左括號(之間留空白否則編輯器會誤認為函數名為 function
在表達式中二元運算符 ( 除左括號(左方括號[作用域點) 和兩個操作數之間最好留空白一元運算符(若不是詞 typeof 等)和其操作數之間不宜留空白
逗號的後面需要留空白以顯示明確的參數間隔變量間隔等
分號;之後通常表明表達語句的結束而應空行在 for 的條件語句中分號之後則應該留空白
{ } 和 [ ]
在 javascript 中如需定義空對象和空數組通常很自然地想到用 new Object() 和 new Array() 的方法其實花括號{}和方括號[]可以直接用來定義一個空對象和一個空數組這種書寫方法可以使代碼看起來簡單易懂
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19966.html