![JavaScript編碼規(guī)范_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/58ea3d0e-90a7-4865-9353-3a901c8f560c/58ea3d0e-90a7-4865-9353-3a901c8f560c1.gif)
![JavaScript編碼規(guī)范_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/58ea3d0e-90a7-4865-9353-3a901c8f560c/58ea3d0e-90a7-4865-9353-3a901c8f560c2.gif)
![JavaScript編碼規(guī)范_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/58ea3d0e-90a7-4865-9353-3a901c8f560c/58ea3d0e-90a7-4865-9353-3a901c8f560c3.gif)
![JavaScript編碼規(guī)范_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/58ea3d0e-90a7-4865-9353-3a901c8f560c/58ea3d0e-90a7-4865-9353-3a901c8f560c4.gif)
![JavaScript編碼規(guī)范_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/58ea3d0e-90a7-4865-9353-3a901c8f560c/58ea3d0e-90a7-4865-9353-3a901c8f560c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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 標準而言,建議指定 type 屬性,并將 <script> 放到頁面的 <head> 中 。)縮進縮進的單位為四個空格。避免使
3、用 Tab 鍵來縮進。因為始終沒有個統(tǒng)一的 Tab 長短標準。雖然使用空格會增加文件的大小,但在局域網(wǎng)中幾乎可以忽略,且在最小化過程中也可被消除掉。每行長度避免每行超過 80 個字符。當一條語句一行寫不下時,請考慮折行。在運算符號,最好是逗號后換行。在運算符后換行可以減少因為復(fù)制粘貼產(chǎn)生的錯誤被分號掩蓋的幾率。注釋不要吝嗇注釋。給以后需要理解你的代碼的人們(或許就是你自己)留下信息是非常有用的。注釋應(yīng)該和它們所注釋的代碼一樣是書寫良好且清晰明了。偶爾的小幽默就更不錯了。記得要避免冗長或者情緒化。及時地更新注釋也很重要。錯誤的注釋會讓程序更加難以閱讀和理解。讓注釋有意義。重點在解釋那些不容易立即
4、明白的邏輯上。不要把讀者的時間浪費在閱讀類似于:i = 0; / 讓 i 等于 0使用單行注釋。塊注釋用于注釋正式文檔和無用代碼。變量聲明所有的變量必須在使用前進行聲明。JavaScript 并不強制必須這么做,但這么做可以讓程序易于閱讀,且也容易發(fā)現(xiàn)那些沒聲明的變量(它們會被編譯成全局變量)。將 var 語句放在函數(shù)的首部。最好把每個變量的聲明語句單獨放到一行,并加上注釋說明。所有變量按照字母排序。var currentEntry; / 當前選擇項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)避免使用這種容易讓人誤解的命名習慣。大多數(shù)的變量名和方法命應(yīng)以小寫字母開頭。必須與 new 共同使用的構(gòu)造函數(shù)名應(yīng)以大寫字母開頭。當 new 被省略時 JavaScript 不會有任何編譯錯誤或運行錯誤拋出。忘記加 new 時會讓不好的事情發(fā)生(比如被當成一般的函數(shù)),所以大寫構(gòu)造函數(shù)名是我們來盡量避免這種情況發(fā)生的唯一辦法。全局變量應(yīng)該全部大寫。(JavaScript 沒有宏或者常量,所以不會因此造成誤會)語句簡單語句每一行最多只包含一條語句。把 “,” (分號)放到每條簡單語句
10、的結(jié)尾處。注意一個函數(shù)賦值或?qū)ο筚x值語句也是賦值語句,應(yīng)該以分號結(jié)尾。JavaScript 可以把任何表達式當作一條語句。這很容易隱藏一些錯誤,特別是誤加分號的錯誤。只有在賦值和調(diào)用時,表達式才應(yīng)被當作一條單獨的語句。復(fù)合語句復(fù)合語句是被包含在 “ ”(大括號)的語句序列。被括起的語句必須多縮進四個空格。“”(左大括號)應(yīng)在復(fù)合語句其實行的結(jié)尾處?!啊保ㄓ掖罄ㄌ枺?yīng)與“”(左大括號)的那一行的開頭對齊。大括號應(yīng)該在所有復(fù)合語句中使用,即使只有一條語句,當它們是控制結(jié)構(gòu)的一部分時,比如一個 if 或者 for 語句。這樣做可以避免以后添加語句時造成的錯誤。標示語句標示是可選的,只有以下語句必須被
11、標示: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() 。當成員名是一組有序的數(shù)字時使用數(shù)組來保存數(shù)據(jù)。當成員名是無規(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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個體品牌店鋪轉(zhuǎn)手合同標準格式
- 2025年企業(yè)應(yīng)用軟件開發(fā)外包服務(wù)合同
- 2025年勞動合同法關(guān)鍵及詳細解析
- 官方認證合同標準文本參考集
- 2025年創(chuàng)業(yè)合伙企業(yè)投資協(xié)議模板
- 2025年雙邊技術(shù)交流與合作協(xié)議范例
- 2025年醫(yī)療機構(gòu)醫(yī)療器械監(jiān)管維護管理協(xié)議
- 2025年親屬間房產(chǎn)轉(zhuǎn)讓合同文本
- 2025年住宅建設(shè)安全管理合同
- 2025年經(jīng)濟型共享汽車短期租賃合同
- 02J401 鋼梯【含03年修改】圖集
- 軟件確認報告-模板
- 馬克思主義的誕生(何)
- 《紅樓夢第五回》課件
- 供應(yīng)鏈管理 課件 項目一 供應(yīng)鏈及供應(yīng)鏈管理認知
- 2023年全國醫(yī)學博士外語統(tǒng)一考試(英語)
- 2024年中儲棉總公司招聘筆試參考題庫含答案解析
- 微整培訓(xùn)課件
- TQRDC供應(yīng)商評價標準-0314
- 2023年初級出版資格證考試:《初級出版專業(yè)實務(wù)》真題模擬匯編(共267題)
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術(shù)標準》
評論
0/150
提交評論