JavaScript編碼規(guī)范_第1頁
JavaScript編碼規(guī)范_第2頁
JavaScript編碼規(guī)范_第3頁
JavaScript編碼規(guī)范_第4頁
JavaScript編碼規(guī)范_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、JavaScript編碼規(guī)范前言Any violation to this guide is allowed if it enhances readability.所有的代碼都要變成可供他人容易閱讀的。軟件的長期價值直接源于其編碼質(zhì)量。在它的整個生命周期里,一個程序可能會被許多人閱讀或修改。如果一個程序可以清晰的展現(xiàn)出它的結(jié)構(gòu)和特征,那就能減少在以后對其進行修改時出錯的可能性。編程規(guī)范可以幫助程序員們增加程序的健壯性。所有的 JavaScript 代碼都是暴露給公眾的。所以我們更應(yīng)該保證其質(zhì)量。保持整潔很重要。JavaScript 文件JavaScript 程序應(yīng)獨立保存在后綴名為 .js 的

2、文件中。JavaScript 代碼不應(yīng)該被包含在 HTML 文件中,除非這是段特定只屬于此部分的代碼。在 HTML 中的JavaScript代碼會明顯增加文件大小,而且也不能對其進行緩存和壓縮。filename.js 應(yīng)盡量放到 body 的后面。這樣可以減少因為載入腳本而造成其他頁面內(nèi)容載入也被延遲的問題。也沒有必要使用 language 或者 type 屬性。MIME 類型是由服務(wù)器而非 scripttag 來 決 定 的 。(按照 Web 標(biāo)準(zhǔn)而言,建議指定 type 屬性,并將 <script> 放到頁面的 <head> 中 。)縮進縮進的單位為四個空格。避免使

3、用 Tab 鍵來縮進。因為始終沒有個統(tǒng)一的 Tab 長短標(biāo)準(zhǔn)。雖然使用空格會增加文件的大小,但在局域網(wǎng)中幾乎可以忽略,且在最小化過程中也可被消除掉。每行長度避免每行超過 80 個字符。當(dāng)一條語句一行寫不下時,請考慮折行。在運算符號,最好是逗號后換行。在運算符后換行可以減少因為復(fù)制粘貼產(chǎn)生的錯誤被分號掩蓋的幾率。注釋不要吝嗇注釋。給以后需要理解你的代碼的人們(或許就是你自己)留下信息是非常有用的。注釋應(yīng)該和它們所注釋的代碼一樣是書寫良好且清晰明了。偶爾的小幽默就更不錯了。記得要避免冗長或者情緒化。及時地更新注釋也很重要。錯誤的注釋會讓程序更加難以閱讀和理解。讓注釋有意義。重點在解釋那些不容易立即

4、明白的邏輯上。不要把讀者的時間浪費在閱讀類似于:i = 0; / 讓 i 等于 0使用單行注釋。塊注釋用于注釋正式文檔和無用代碼。變量聲明所有的變量必須在使用前進行聲明。JavaScript 并不強制必須這么做,但這么做可以讓程序易于閱讀,且也容易發(fā)現(xiàn)那些沒聲明的變量(它們會被編譯成全局變量)。將 var 語句放在函數(shù)的首部。最好把每個變量的聲明語句單獨放到一行,并加上注釋說明。所有變量按照字母排序。var currentEntry; / 當(dāng)前選擇項var level;var size;/ 縮進程度/ 表格大小JavaScript 沒有塊范圍,所以在塊里面定義變量很容易引起 C/C+/Java

5、 程序員們的誤解。在函數(shù)的首部定義所有的變量。盡量減少全局變量的使用。不要讓局部變量覆蓋全局變量。函數(shù)聲明所有的函數(shù)在使用前進行聲明。 內(nèi)函數(shù)的聲明跟在 var 語句的后面。這樣可以幫助判斷哪些變量是在函數(shù)范圍內(nèi)的。函數(shù)名與“(”(左括號)之間不應(yīng)該有空格?!?”(右括號)與開始程序體的“”(左大括號)之間應(yīng)插入一個空格。函數(shù)程序體應(yīng)縮進四個空格。“”(右大括號)與聲明函數(shù)的那一行代碼頭部對齊。function outer(c,d) var e = c * d;function inner(a, b) return (e * a) + b;return inner(0, 1);下面這種書寫方式

6、可以在 JavaScript 中正常使用,因為在 JavaScript 中,函數(shù)和對象的聲明可以放到任何表達式允許的地方。且它讓內(nèi)聯(lián)函數(shù)和混合結(jié)構(gòu)具有最好的可讀性。function getElementsByClassName(className) var results = ;walkTheDOM(document.body, function (node) var a;/ array of class namesvar c = node.className; / the node's classnamevar i;/ loop counter/ If the node has a

7、class name, then split it into a list of simple names./ If any of them match the requested name, then append the node to theset of results.if (c) a = c.split(' ');for (i = 0; i < a.length; i += 1) if (ai = className) results.push(node);break;);return results;如果函數(shù)是匿名函數(shù),則在 function 和 “(”(左括

8、號)之間應(yīng)有一個空格。如果省略了空格,否則會讓人感覺函數(shù)名叫作 function。div.onclick = function (e) return false;that = method: function () return this.datum;,datum: 0;盡量不使用全局函數(shù)。命名變量名應(yīng)由 26 個大小寫字母(A.Z,a.z), 10 個數(shù)字(0.9), 和 “_”(下劃線)組成。避免使用國際化字符(如中文),因為它們不是在任何地方都可以被方便的閱讀和理解。不要在命名中使用 “$”(美元符號)或者 “”(反斜杠)。不要把 “_”(下劃線)作為變量名的第一個字符。它有時用來表示私

9、有變量,但實際上 JavaScript 并沒提供私有變量的功能。如果私有變量很重要,那么使用 私有成員 的形式。應(yīng)避免使用這種容易讓人誤解的命名習(xí)慣。大多數(shù)的變量名和方法命應(yīng)以小寫字母開頭。必須與 new 共同使用的構(gòu)造函數(shù)名應(yīng)以大寫字母開頭。當(dāng) new 被省略時 JavaScript 不會有任何編譯錯誤或運行錯誤拋出。忘記加 new 時會讓不好的事情發(fā)生(比如被當(dāng)成一般的函數(shù)),所以大寫構(gòu)造函數(shù)名是我們來盡量避免這種情況發(fā)生的唯一辦法。全局變量應(yīng)該全部大寫。(JavaScript 沒有宏或者常量,所以不會因此造成誤會)語句簡單語句每一行最多只包含一條語句。把 “,” (分號)放到每條簡單語句

10、的結(jié)尾處。注意一個函數(shù)賦值或?qū)ο筚x值語句也是賦值語句,應(yīng)該以分號結(jié)尾。JavaScript 可以把任何表達式當(dāng)作一條語句。這很容易隱藏一些錯誤,特別是誤加分號的錯誤。只有在賦值和調(diào)用時,表達式才應(yīng)被當(dāng)作一條單獨的語句。復(fù)合語句復(fù)合語句是被包含在 “ ”(大括號)的語句序列。被括起的語句必須多縮進四個空格。“”(左大括號)應(yīng)在復(fù)合語句其實行的結(jié)尾處。“”(右大括號)應(yīng)與“”(左大括號)的那一行的開頭對齊。大括號應(yīng)該在所有復(fù)合語句中使用,即使只有一條語句,當(dāng)它們是控制結(jié)構(gòu)的一部分時,比如一個 if 或者 for 語句。這樣做可以避免以后添加語句時造成的錯誤。標(biāo)示語句標(biāo)示是可選的,只有以下語句必須被

11、標(biāo)示:while、do、for、switch。return 語句一條有返回值的 return 語句不要使用“( )”(括號)來括住返回值。如果返回表達式,則表達式應(yīng)與 return關(guān)鍵字在同一行,以避免誤加分號錯誤。if 語句if 語句應(yīng)如以下格式:if (condition)statements;if (condition) statements; else statements;if (condition) statements; else if (condition) statements; else statements;for 語句for 語句應(yīng)如以下格式:for (initiali

12、zation;condition; update) statements;for (variable in object) if (filter) statements;第一種形式的循環(huán)用于已經(jīng)知道相關(guān)參數(shù)的數(shù)組循環(huán)。第二種形式應(yīng)用于對象中。Object 原型中的成員將會被包含在迭代器中。通過預(yù)先定義 hasOwnProperty方法來區(qū)分真正的 object 成員是個不錯方法:for (variable in object) if (object.hasOwnProperty(variable)statements;while 語句while 語句應(yīng)如以下格式:while (conditio

13、n)statements;do 語句do 語句應(yīng)如以下格式:do statements; while (condition);不像別的復(fù)合語句,do 語句總是以 “;”(分號)結(jié)尾。switch 語句switch 語句應(yīng)如以下格式:switch (expression)case expression:statements;default:statements;每個 case 與 switch 對齊。這可避免過分縮進。每一組 statements(除了default 應(yīng)以 break,return,或者 throw 結(jié)尾),不要讓它順次往下執(zhí)行。try 語句try 語句應(yīng)如以下格式:try st

14、atements; catch (variable)statements;try statements; catch (variable)statements; finally statements;continue 語句避免使用 continue 語句。它很容易使得程序的邏輯過程晦澀難懂。with 語句不要使用 with 語句??瞻子每招衼韺⑦壿嬒嚓P(guān)的代碼塊分割開可以提高程序的可讀性??崭駪?yīng)在以下情況時使用 :跟在“(”(左括號)后面的關(guān)鍵字應(yīng)被一個空格隔開。while (true) 函數(shù)參數(shù)與“(”(左括號)之間不應(yīng)該有空格。這能幫助區(qū)分關(guān)鍵字和函數(shù)調(diào)用。所有的二元操作符,除了“.”(點)

15、 和“(”(左括號)和 “”(左方括號)應(yīng)用空格將其與操作數(shù)隔開。一元操作符與其操作數(shù)之間不應(yīng)有空格,除非操作符是個單詞,比如 typeof。每個在控制部分,比如 for 語句中的 “;”(分號)后須跟一個空格。每個 “,”(逗號)后應(yīng)跟一個空格。另外的建議 和使用 代替 new Object()。使用 代替 new Array() 。當(dāng)成員名是一組有序的數(shù)字時使用數(shù)組來保存數(shù)據(jù)。當(dāng)成員名是無規(guī)律的字符串或其他時使用對象來保存數(shù)據(jù)。,(逗號)操作符避免使用逗號操作符,除非在特定的 for 語句的控制部分。(這不包括那些被用在對象定義,數(shù)組定義 ,var 語句,和參數(shù)列表中的逗號分隔符。)作用域在 JavaScript 中塊沒有域。只有函數(shù)有域。不要使用塊,除非在復(fù)合語句中。賦值表達式避免在 if 和 while 語句的條件部分進行賦值。if (a = b) 是一條正確語句? 或者if (a = b) 才是對的? 避免這種不容易判斷對錯的結(jié)構(gòu)。= 和 != 操作符。使用 = 和 != 操作符會相對好點。= 和 != 操作符會進行類型強制轉(zhuǎn)換。 特別是, 不要將 =用于與錯值比較(false,null,undefined,“”,0,NaN)。令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論