1.變量命名規(guī)范
????變量名包括全局變量洛史,局部變量,類變量酱吝,函數(shù)參數(shù)等等虹菲,他們都屬于這一類。
基本規(guī)范
????變量命名都以類型前綴+有意義的單詞組成掉瞳,單詞首字母都需要大寫毕源。例如:sUserName,nCount陕习。
前綴規(guī)范
????每個局部變量都需要有一個類型前綴霎褐,按照類型可以分為:
- s:表示字符串。例如:sName该镣,sHtml冻璃;
- n:表示數(shù)字。例如:nPage损合,nTotal省艳;
- b:表示邏輯。例如:bChecked嫁审,bHasLogin跋炕;
- a:表示數(shù)組。例如:aList律适,aGroup辐烂;
- r:表示正則表達式。例如:rDomain捂贿,rEmail纠修;
- f:表示函數(shù)。例如:fGetHtml厂僧,fInit扣草;
- o:表示以上未涉及到的其他對象,例如:oButton颜屠,oDate辰妙;
例外情況
????1:作用域不大臨時變量可以簡寫,比如:str汽纤,num上岗,bol,obj蕴坪,fun肴掷,arr敬锐。
????2:循環(huán)變量可以簡寫,比如:i呆瞻,j台夺,k等。 為什么需要這樣強制定義變量前綴痴脾?正式因為javascript是弱語言造成的颤介。在定義大量變量的時候,我們需要很明確的知道當前變量是什么屬性赞赖,如果只通過普通單詞滚朵,是很難區(qū)分的。
全局變量命名規(guī)范
????全局變量使用A作為前綴前域。如果是字符串類型的使用前綴ASTR,對象類型的則使用前綴AOBJ辕近。 例如:ASTR_QueryString,AOBJ_Object.
常量命名規(guī)范
????某些作為不允許修改值的變量認為是常量,全部字母都大寫匿垄。例如:PI.
2.函數(shù)命名規(guī)范
????統(tǒng)一使用動詞或者動詞[+名詞]形式移宅,例如:fGetVersion(),fSubmitForm()椿疗,fInit()漏峰;涉及返回邏輯值的函數(shù)可以使用is,has等表示邏輯的詞語代替動詞届榄。 如果有內(nèi)部函數(shù)浅乔,使用__f+動詞[+名詞]形式,內(nèi)部函數(shù)必需在函數(shù)最后定義痒蓬。例如:
functionfGetNumber(nTotal){
if(nTotal<100code=""){
nTotal=100;
}
return__fAdd(nTotal);
function__fAdd(nNumber){
nNumber++;
returnnNumber;
}
}
alert(fGetNumber(30));//alert101
對象方法實現(xiàn)
????對象方法命名使用f+對象類名+動詞[+名詞]形式童擎;例如fAddressGetEmail
事件響應函數(shù)
????某事件響應函數(shù)命名方式為觸發(fā)事件對象名+事件名或者模塊名+觸發(fā)事件對象名+事件名,例如:fDivClick()攻晒,fAddressSubmitButtonClick()
3.變量命名規(guī)范
1:所有命名最好使用英語表示。
2:所有變量名應該明確而必要班挖,盡量避免不必要的容易混淆的縮寫鲁捏。
3:netease.events.mouse.Handler,而不是netease.events.mouse.MouseEventHandler萧芙。
4:對應的方法應該使用對應的動詞给梅,例如:get/set,add/remove,create/destroy,start/stop,insert/delete,begin/end。
5:應該避免雙重否定意義的變量双揪,例如:bIsNotError,bIsNotFound动羽,不可取。6:變量應該在最小的范圍內(nèi)定義渔期,并盡可能的保持最少的活動時間运吓。
7:循環(huán)變量最好在循環(huán)中定義渴邦。例如for(vari=0,m=10;i
8:盡量避免復雜的條件語句,可以使用臨時的boolean變量代替拘哨。
9:一定要避免在條件中執(zhí)行語句谋梭,例如:if((i=3)<2){},不可取倦青。
10:不要在代碼中重復使用相同意義的數(shù)字瓮床,用一個變量代替,比如nTotal=100;num=total产镐。