作为一名合格的前端攻城师,代码规范是少不了的。无规矩不成方圆,当然Javasript的代码编写也要有规范,良好的规范能大大促进团队工作的效率和代码的质量。今天小前给coder们分享一些Javascript代码编写规范,希望大家能牢记哦!
Javascript语句规范
1、语句必须都有分号结尾,除了for, function, if, switch, try, while
2、只有长语句可以考虑断行,如:
//错误写法 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); //为了避免和JSLint的检验机制冲突,"."或"+"这类操作符放在行尾.
3、避免额外的逗号。如:var arr = [1,2,3,];
4、所有的循环体和判断体都需要用”{}”括起来。如:
//错误写法 if (condition) statement; //或 if (condition) statement; //正确写法 if (condition) { statement; } //或 if (condition) { statement; }
5、for-in循环体中必须用hasOwnProperty方法检查成员是否为自身成员。避免来自原型链上的污染。
6、变量声明。变量声明应放在function的最上面。避免使用未声明的变量。
//错误写法 if (n > 0) { var isvalid = true; } //正确写法 var isvalid; if (n > 0) { isvalid = true; }
7、不要使用with, void, evil。
8、使用严格的条件判断符。用===代替==,用!==代替!=。
9、下面类型的对象不建议用new构造:new Number, new String, new Boolean, new Object(用{}代替), new Array(用[]代替)。
10、引用对象成员用obj.prop1代替obj['prop1'],除非属性名是变量。
Javascript命名规范
1、构造器的首字母大写。如:
function Dialog (config) { statement; } var art = new Dialog({...});
2、对象的属性或方法名采用小驼峰式(lower camel-case),如”init”, “bindEvent”, “updatePosition”:
Dialog.prototype = { init: function () {}, bindEvent: function () {}, updatePosition: function () {} };
3、私有变量名用下划线开头。如:”_current”, “_defaultConfig”
4、常量名全部大写,单词间用下划线分隔。如:”CSS_BTN_CLOSE”, “TXT_LOADING”
5、变量名的前缀:
|
前缀 |
类型 |
示例 |
|
n |
integer |
nVariableName |
|
i,j,k,m,n, etc. * |
integer as counter/iterator |
(for i=0; i<=oArray.length; i++) |
|
s |
string |
sVariableName |
|
o |
object |
oObjectName |
|
is, can, has |
boolean |
[Boolean name]ConditionName |
|
event method |
event attachment |
[event type]_MethodName |
|
get |
accessor method |
getMethodName |
|
set |
accessor method |
setMethodName |
Javascript格式化规范
1、语句中的必要空格和缩进
2、用来包含语句的”()”前后需要跟空格,诸如: if / for / while / switch ( statements ) { … } 等
3、”=”前后需要跟空格
4、数组成员间的”,”后面需要跟空格
5、长语句采用断行:
//错误写法 for (t in selected) { if (!hash[t]) deselect(t) } //正确写法 for ( t in selected ) { if ( !hash[t] ) { deselect(t); } }
6、格式化对象参数:
//错误写法 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 }}); //正确写法 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 } });


擦….要不要这么专业哦