亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Dojo Javascript 編程規范 規范自己的JavaScript書寫

2019-11-20 13:59:29
字體:
來源:轉載
供稿:網友

前言

良好的JavaScript書寫習慣的優點不言而喻,今天彬Go向大家推薦Dojo Javascript 編程規范,相當不錯的 Javascript 編程風格規范,建議大家可以借鑒一下此規范編寫 Javascript。感謝i.feelinglucky的翻譯。

Any violation to this guide is allowed if it enhances readability.

所有的代碼都要變成可供他人容易閱讀的。

快讀參考

核心 API 請使用下面的風格:

結構 規則 注釋
模塊 小寫 不要使用多重語義(Never multiple words)
駱駝
公有方法 混合 其他的外部調用也可以使用 lower_case(),這樣的風格
公有變量 混合
常量 駱駝 或 大寫

下面的雖然不是必要的,但建議使用:

結構 規則
私有方法 混合,例子:_mixedCase
私有變量 混合,例子:_mixedCase
方法(method)參數 混合,例子:_mixedCase, mixedCase
本地(local)變量 混合,例子:_mixedCase, mixedCase


命名規范

1.變量名稱 必須為 小寫字母。
2.類的命名使用駱駝命名規則,例如:

Account, EventHandler

3.常量 必須 在對象(類)或者枚舉變量的前部聲明。枚舉變量的命名必須要有實際的意義,并且其成員 必須 使用駱駝命名規則或使用大寫:

復制代碼 代碼如下:

var NodeTypes = {
Element : 1,
DOCUMENT: 2
}

4.簡寫單詞 不能使用 大寫名稱作為變量名:

getInnerHtml(), getXml(), XmlDocument
5.方法的命令 必須 為動詞或者是動詞短語:

obj.getSomeValue()
6.公有類的命名 必須 使用混合名稱(mixedCase)命名。
7.CSS 變量的命名 必須 使用其對應的相同的公共類變量。
8.私有類的變量屬性成員 必須 使用混合名稱(mixedCase)命名,并前面下下劃線(_)。例如:

復制代碼 代碼如下:

var MyClass = function(){
var _buffer;
this.doSomething = function(){
};
}

9.變量如果設置為私有,則前面 必須 添加下劃線。

this._somePrivateVariable = statement;

10.通用的變量 必須 使用與其名字一致的類型名稱:

setTopic(topic) // 變量 topic 為 Topic 類型的變量
11.所有的變量名 必須 使用英文名稱。
12.變量如有較廣的作用域(large scope),必須使用全局變量;此時可以設計成一個類的成員。相對的如作用域較小或為私有變量則使用簡潔的單詞命名。
13.如果變量有其隱含的返回值,則避免使用其相似的方法:

getHandler(); // 避免使用 getEventHandler()

14.公有變量必須清楚的表達其自身的屬性,避免字義含糊不清,例如:

MouseEventHandler
,而非 MseEvtHdlr。
  請再次注意這條規定,這樣做得的好處是非常明顯的。它能明確的表達表達式所定義的含義。例如:   

dojo.events.mouse.Handler // 而非 dojo.events.mouse.MouseEventHandler

15.類/構造函數 可以使用 擴展其基類的名稱命名,這樣可以正確、迅速的找到其基類的名稱:
 EventHandler
 UIEventHandler
 MouseEventHandler
  基類可以在明確描述其屬性的前提下,縮減其命名:
   MouseEventHandler as opposed to MouseUIEventHandler.

特殊命名規范

術語 “get/set” 不要和一個字段相連,除非它被定義為私有變量。
前面加 “is” 的變量名 應該 為布爾值,同理可以為 “has”, “can” 或者 “should”。
術語 “compute” 作為變量名應為已經計算完成的變量。
術語 “find” 作為變量名應為已經查找完成的變量。
術語 “initialize” 或者 “init” 作為變量名應為已經實例化(初始化)完成的類或者其他類型的變量。
UI (用戶界面)控制變量應在名稱后加控制類型,例如: leftComboBox, TopScrollPane。
復數必須有其公共的名稱約定(原文:Plural form MUST be used to name collections)。
帶有 “num” 或者 “count” 開頭的變量名約定為數字(對象)。
重復變量建議使用 “i”, “j”, “k” (依次類推)等名稱的變量。
補充用語必須使用補充詞,例如: get/set, add/remove, create/destroy, start/stop, insert/delete, begin/end, etc.
能縮寫的名稱盡量使用縮寫。
避免產生歧義的布爾變量名稱,例如:
  isNotError, isNotFound 為非法
錯誤類建議在變量名稱后加上 “Exception” 或者 “Error”。
方法如果返回一個類,則應該在名稱上說明返回什么;如果是一個過程,則應該說明做了什么。

文件

縮進請使用 4 個空白符的制表位。
如果您的編輯器支持 文件標簽_(file tags),請加添如下的一行使我們的代碼更容易閱讀:

// vim:ts=4:noet:tw=0:
譯注:老外用 VIM 編輯器比較多,此條可以選擇遵循。

代碼折疊必須看起來是完成并且是合乎邏輯的:

復制代碼 代碼如下:

var someExpression = Expression1
+ Expression2
+ Expression3;

var o = someObject.get(
Expression1,
Expression2,
Expression3
);

注:表達式的縮進與變量聲明應為一致的。
注:函數的參數應采用明確的縮進,縮進規則與其他塊保持一致。

變量

  1. 變量必須在聲明初始化以后才能使用,即便是 NULL 類型。
  2. 變量不能產生歧義。
  3. 相關的變量集應該放在同一代碼塊中,非相關的變量集不應該放在同一代碼塊中。
  4. 變量應該盡量保持最小的生存周期。
  5. 循環/重復變量的規范:
    1. 只有循環控制塊的話,則必須使用 FOR 循環。
    2. 循環變量應該在循環開始前就被初始化;如使用 FOR 循環,則使用 FOR 語句初始化循環變量。
    3. “do … while” 語句是被允許的。
    4. “break” 和 “continue” 語句仍然允許使用(但請注意)。
  6. 條件表達式
    1. 應該盡量避免復雜的條件表達式,如有必要可以使用臨時布爾變量。
    2. The nominal case SHOULD be put in the “if” part and the exception in the “else” part of an “if” statement.
    3. 應避免在條件表達式中加入塊。
  7. 雜項
    1. 盡量避免幻數(Magic numbers),他們應該使用常量來代替。
    2. 浮點變量必須指明小數點后一位(即使是 0)。
    3. 浮點變量必須指明實部,即使它們為零(使用 0. 開頭)。

布局

普通代碼段 應該 看起來如下:

復制代碼 代碼如下:

while (!isDone){
doSomething();
isDone = moreToDo();
}

IF 語句 應該 看起來像這樣:

復制代碼 代碼如下:

if (someCondition){
statements;
} else if (someOtherCondition){
statements;
} else {
statements;
}

FOR 語句 應該 看起來像這樣:

復制代碼 代碼如下:

for (initialization; condition; update){
statements;
}

WHILE 語句 應該 看起來像這樣:

復制代碼 代碼如下:

while (!isDone) {
doSomething();
isDone = moreToDo();
}

DO … WHILE 語句 應該 看起來像這樣:

復制代碼 代碼如下:

do {
statements;
} while (condition);

SWITCH 語句 應該 看起來像這樣:

復制代碼 代碼如下:

switch (condition) {
case ABC:
statements;
// fallthrough
case DEF:
statements;
break;
default:
statements;
break;
}

TRY … CATCH 語句 應該 看起來像這樣:

復制代碼 代碼如下:

try {
statements;
} catch(ex) {
statements;
} finally {
statements;
}

單行的 IF 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

国产精品亚洲精品| 国产成人午夜视频网址| 国产综合在线观看视频| 国产精品日韩在线一区| 亚洲成人激情在线| 久久综合国产精品台湾中文娱乐网| 欧美成人午夜视频| 亚洲理论在线a中文字幕| 成人黄色短视频在线观看| 九九热这里只有精品免费看| 亚洲男人av在线| 国产在线观看精品一区二区三区| 国产精品精品视频| 欧美性猛交丰臀xxxxx网站| 亚洲一区二区免费在线| 国产一区二区在线免费视频| 国产精品午夜一区二区欲梦| 成人日韩av在线| 久久韩剧网电视剧| 两个人的视频www国产精品| 亚洲福利视频在线| 91成人在线观看国产| 精品国产一区二区三区久久狼黑人| 日本久久亚洲电影| 亚洲视频一区二区三区| 亚洲激情成人网| 国产精品麻豆va在线播放| 欧美理论电影网| 精品爽片免费看久久| 国产精品激情av电影在线观看| 亚洲女同性videos| 日本一区二区在线播放| 92看片淫黄大片欧美看国产片| 少妇高潮 亚洲精品| 国产精品jvid在线观看蜜臀| 亚洲精品之草原avav久久| 欧美成人第一页| 在线观看久久av| 国产精品一香蕉国产线看观看| 这里只有精品丝袜| 精品国产一区二区在线| 青青久久av北条麻妃海外网| 亚洲欧美日韩精品久久奇米色影视| 中文字幕av一区二区三区谷原希美| 精品无人区太爽高潮在线播放| 91国产视频在线播放| 亚洲最大的网站| 欧美色道久久88综合亚洲精品| 日韩高清av在线| 高清欧美性猛交xxxx| 精品久久久在线观看| 国产日韩亚洲欧美| 少妇高潮久久久久久潘金莲| 伊人久久免费视频| 精品一区二区三区三区| 亚洲欧美日韩精品久久奇米色影视| 亚洲嫩模很污视频| 亚洲欧美成人在线| 亚洲视频在线播放| 国产欧美中文字幕| 久久久精品视频在线观看| 大荫蒂欧美视频另类xxxx| 狠狠干狠狠久久| 热久久这里只有精品| 亚洲**2019国产| 一区二区三区美女xx视频| 亚洲午夜女主播在线直播| 亚洲国产成人精品久久| 欧美激情日韩图片| 亚洲欧美日韩网| 伊是香蕉大人久久| 亚洲欧美国内爽妇网| 91精品综合视频| 久久国产一区二区三区| 欧美成人免费观看| 亚洲一区二区三区视频播放| 日韩av大片免费看| 国产成人精品综合| 精品丝袜一区二区三区| 98精品国产高清在线xxxx天堂| 欧美影院成年免费版| 8090成年在线看片午夜| 国产精品午夜国产小视频| 日韩亚洲国产中文字幕| 亚洲人在线视频| 久久精品夜夜夜夜夜久久| 国产精品吊钟奶在线| 久久综合久久八八| 欧美最近摘花xxxx摘花| 奇门遁甲1982国语版免费观看高清| 亚洲精品v欧美精品v日韩精品| 国产福利精品在线| 久久中文精品视频| 国产精品视频网站| 亚洲免费精彩视频| 国产一区二区三区18| 欧美亚洲另类激情另类| 色青青草原桃花久久综合| 亚洲网站在线看| 欧美电影在线观看| 久久久精品国产网站| 欧美日韩色婷婷| 久热精品视频在线| 色诱女教师一区二区三区| 91手机视频在线观看| 欧洲亚洲免费在线| 中国china体内裑精亚洲片| 欧美日韩色婷婷| 久久不射热爱视频精品| 日韩中文在线观看| 性欧美暴力猛交69hd| 一本色道久久88综合日韩精品| 亚洲国产第一页| 日韩国产精品视频| 亚洲欧洲国产精品| 欧美日韩国产中字| 国产精品午夜国产小视频| 久久天堂av综合合色| 7777免费精品视频| 日韩在线观看免费全| 欧美日韩高清在线观看| 亚洲欧美在线第一页| 欧美日韩性视频在线| 国产精品福利无圣光在线一区| 中文字幕最新精品| 欧美日韩中文字幕日韩欧美| 欧美激情免费看| 日韩激情片免费| 亚洲视频在线视频| 国产日产欧美精品| 日韩精品在线观看网站| 国产精品电影一区| 日韩视频―中文字幕| 亚洲国产精品99| 亚洲一区二区黄| 国产精品流白浆视频| 久久精品成人欧美大片古装| 久久网福利资源网站| 国产一区二区动漫| 国产欧美日韩丝袜精品一区| 日韩欧美成人免费视频| 亚洲深夜福利视频| 欧美日韩xxxxx| 91禁国产网站| 91高清视频免费| 久久久亚洲天堂| 欧美在线亚洲在线| 91性高湖久久久久久久久_久久99| 中文字幕综合一区| 色婷婷av一区二区三区久久| 国产精品wwww| 亚洲欧洲午夜一线一品| 亚洲美女在线视频| 亚洲欧美日韩中文在线制服| 国产精品自在线| 亚洲免费电影在线观看| 亚洲人成电影在线| 亚洲美女av网站| 在线看国产精品| 亚洲天堂免费在线| 亚洲va码欧洲m码| 久久久亚洲国产天美传媒修理工| 日本久久中文字幕| 曰本色欧美视频在线|