国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > CSS > 正文

javascript代碼規(guī)范小結(jié)

2024-07-11 09:01:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
javascript代碼規(guī)范,大家可以參考下,以便寫出更利于閱讀的代碼。
 
 
 
1. Javascript代碼應(yīng)符合Douban-JSLint檢驗(yàn)標(biāo)準(zhǔn) 

1-1. 語(yǔ)句必須都有分號(hào)結(jié)尾,除了for, function, if, switch, try, while 

1-2. 只有長(zhǎng)語(yǔ)句可以考慮斷行,如: 

TEMPL_SONGLIST.replace('{TABLE}', da['results']) 
.replace('{PREV_NUM}', prev) 
.replace('{NEXT_NUM}', next) 
.replace('{CURRENT_NUM}', current) 
.replace('{TOTAL_NUM}', da.page_total); 

為了避免和JSLint的檢驗(yàn)機(jī)制沖突,“.”或“+”這類操作符放在行尾,上面代碼應(yīng)改為: 

TEMPL_SONGLIST.replace('{TABLE}', da['results']). 
replace('{PREV_NUM}', prev). 
replace('{NEXT_NUM}', next). 
replace('{CURRENT_NUM}', current). 
replace('{TOTAL_NUM}', da.page_total); 

1-3. 避免額外的逗號(hào)。如:var arr = [1,2,3,]; 

1-4. 所有的循環(huán)體和判斷體都需要用"{}"括起來(lái)。如: 

錯(cuò): 

if (condition) 
statement; 
或 
if (condition) statement; 


對(duì): 

if (condition) { 
statement; 或 
if (condition) { statement; } 

1-5. for-in循環(huán)體中必須用hasOwnProperty方法檢查成員是否為自身成員。避免來(lái)自原型鏈上的污染。

1-6. 變量聲明。變量聲明應(yīng)放在function的最上面。避免使用未聲明的變量。 

錯(cuò): 

if (n > 0) { 
var isvalid = true; 

對(duì): 

var isvalid; 
if (n > 0) { 
isvalid = true; 


1-7. 不要使用with, void, evil。 

1-8. 使用嚴(yán)格的條件判斷符。用===代替==,用!==代替!=。 

1-9. 下面類型的對(duì)象不建議用new構(gòu)造:new Number, new String, new Boolean, new Object(用{}代替), new Array(用[]代替)。 

1-10. 引用對(duì)象成員用obj.prop1代替obj[“prop1”],除非屬性名是變量。 

注:Douban-JSLint是定制過(guò)的JSLint 

注:如果模塊代碼中,使用其它全局變量想跳過(guò)JSLint的檢查,可以在該文件中加入聲明,如: 

2. Javascript命名規(guī)則 

2-1. 構(gòu)造器的首字母大寫。如: 

function Dialog (config) { 
statement; 
} var dlg = new Dialog({...}); 

2-2. 對(duì)象的屬性或方法名采用小駝峰式(lower camel-case),如"init", "bindEvent", "updatePosition": 

Dialog.prototype = { 
init: function () {}, 
bindEvent: function () {}, 
updatePosition: function () {} }; 

2-3. 私有變量名用下劃線開(kāi)頭。如:"_current", "_defaultConfig" 

2-4. 常量名全部大寫,單詞間用下劃線分隔。如:“CSS_BTN_CLOSE”, "TXT_LOADING" 

2-5. 變量名的前綴: 

Prefix 

Element 

Example 

integer 

nVariableName 

i,j,k,m,n, etc. * 

integer as counter/iterator 

(for i=0; i<=oArray.length; i++) 

string 

sVariableName 

object 

oObjectName 

is, can, has 

boolean 

[Boolean name]ConditionName 

event method 

event attachment 

[event type]_MethodName 

accessor method 

getMethodName 

accessor method 

setMethodName 

Note: Only a counter/iterator should use a single-letter designation. 

3. 代碼格式化要求 

3-1. 語(yǔ)句中的必要空格和縮進(jìn) 

3-1-1. 用來(lái)包含語(yǔ)句的"()"前后需要跟空格,諸如: if / for / while / switch ( statements ) { … } 等 

3-1-2. "="前后需要跟空格 

3-1-3. 數(shù)組成員間的","后面需要跟空格 

不好: 

for (t in selected) { if (!hash[t]) deselect(t) } 

好: 

for ( t in selected ) { 
if ( !hash[t] ) { 
deselect(t); } 

3-2. 長(zhǎng)語(yǔ)句采用斷行: 

不好: 

TEMPL_SONGLIST.replace('{TABLE}', da['results']).replace('{PREV_NUM}', prev).replace('{NEXT_NUM}', next).replace('{CURRENT_NUM}', current).replace('{TOTAL_NUM}', da.page_total); 

好: 

TEMPL_SONGLIST.replace('{TABLE}', da['results']). 
replace('{PREV_NUM}', prev). 
replace('{NEXT_NUM}', next). 
replace('{CURRENT_NUM}', current). 
replace('{TOTAL_NUM}', da.page_total); 

3-3. 格式化對(duì)象參數(shù): 

不好: 

embedSWF(id, { url: '/swf/player30792.swf?url=' + el.href, width: 261, height: 30, params: { wmode:'transparent' }, attributes: { id: "player-sample" + i, name: "player-sample" + i }}); 

好: 
復(fù)制代碼代碼如下:

embedSWF(id, { 
url: '/swf/player30792.swf?url=' + el.href, 
width: 261, 
height: 30, 
params: { wmode:'transparent' }, 
attributes: { 
id: "player-sample" + i, 
name: "player-sample" + i 
}); 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长宁县| 朝阳市| 廉江市| 彰武县| 苍南县| 新竹市| 卫辉市| 湘阴县| 思茅市| 顺平县| 平安县| 教育| 丹寨县| 比如县| 谷城县| 柏乡县| 梁河县| 茌平县| 汤原县| 潞西市| 措美县| 兴城市| 南康市| 仙桃市| 奇台县| 康马县| 麟游县| 平凉市| 镇远县| 逊克县| 西和县| 花莲县| 修水县| 山西省| 三亚市| 长兴县| 荥阳市| 郁南县| 平度市| 榕江县| 从化市|