前言:
JavaScript编程规范目的
1. 统一编程风格
2. 提高代码的可阅读性
3. 减少错误产生
4. 减少性能漏洞
5. 提高代码可靠性
6. 减少错误的编码设计
7. 作为代码检查的依据
8. 建立可维护的JavaScript语言编程规范
1.JavaScript文件
1.1 文件引用
JavaScript 代码不应该被包含在HTML 文件中,除非这是段特定只属于此部分的代码。在HTML 中的JavaScript代码会明显增加文件大小,而且也不能对其进行缓存和压缩。js脚本编程入门
filename.js 应尽量放到body 的后面。这样可以减少因为载入脚本而造成其他页面内容载入也被延迟的问题。禁止使用language 属性,必须使用type 属性。
示例:
<script type="text/javascript"src="filename.js"></script>
1.2 编码格式
分离于页面之外的js文件必须采用UTF-8无BOM格式编码,否则极其容易出现不可预知的乱码问题。维护已存在的js脚本文件必须把编码格式转换成规范要求的UTF-8无BOM格式。
2.排版规则
2.1 缩进
每一级缩进采用4个空白符。不要使用Tab作为缩进方式,除非在编辑器里设置了自动将一个Tab转换为4个空白符。
2.2 空白
2.2.1 空行
适当的空行可以大大提高代码的可阅读性,可以使代码逻辑更清晰易懂。
相对独立的程序块之间、变量说明之后必须加空行。
示例:
if (a > b)
{
doStart();
}
//此处是空行
return;
源程序中关系较为紧密的代码应尽可能相邻,便于程序阅读和查。
示例:矩形的长与宽关系较密切,放在一起。
rect.length = 10;
rect.width = 5;
2.2.2 空格
在表达式中适当使用空格,会给代码的阅读带来方便。
关键字的后面如有括号,则最好在关键字和左括号'('之间留空白,如 for, if, while 等。而函数名和括号之间则不宜留空白,但若是匿名函数,则必须在 function 和左括号'('之间留空
白,否则,编辑器会误认为函数名为 function。
在表达式中,二元运算符 ( 除左括号'(',左方括号'[',作用域点'.') 和两个操作数之间最好留空白。一元运算符和其操作数之间不宜留空白。
逗号','的后面需要留空白,以显示明确的参数间隔,变量间隔等。
分号';'之后通常表明表达语句的结束,而应换行。在 for 的条件语句中,分号之后则应该留空白。
示例:
for (i = 0; i < 10; i++)
{
doSomething();
}
a = function (e, d)
{
return e+ d;
};
2.3 换行
每行一个语句,除非这些语句有很密切的联系,否则每行只写一个语句。
示例: 如下例子不符合规范。
vara; a= null;
2.3.1 较长的语句(>80 字符)
要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:
if ((taskNo < maxActTaskNumber)
&& (statItemValid (statItem)))
{
... // program code
}
2.3.2 行结束
JavaScript 语句都使用英文分号(;)表示结束,不要使用换行符作为结束符,虽然大多数浏览器允许不写分号,但不便于阅读、维护。
3.命名规范
约定类命名使用Pascal命名法,即用英文的大小写来分隔单词,所有单词的首字母大写;
变量和方法都使用Camel命名法,即第一个英文首字母小写,其余单词首字母大写。
3.1 变量命名
变量名使用意义完整的英文描述,采用Camel命名法(全局变量除外)。
同时,变量的命名应遵循如下规则:
1) 全局变量应该使用全大写字母,单词间下划线间隔var MAX_COUNT = 10
2) 不要将在循环中频繁使用的临时变量如i,j等用于其它用途
3) UI (用户界面)控制变量应在名称后加控制类型,例如:leftComboBox, TopScrollPane
4) 带有"num" 或者"count" 开头的变量名约定为数字
5) 能缩写的名称尽量使用缩写
6) 缩写词不要全部使用大写字母
7) 前面加"is" 的变量名应该为布尔值,同理可以为"has", "can" 或者"should"
8) 含有集合意义的属性命名,尽量包含其复数的意义,例如:customers
3.2 类命名
用Pascal命名规则,尽量谨慎的使用缩写,不要用下划线作类名单词连接符。类使用英文的大小写来分隔单词,所有单词的首字母大写。
示例:
Account
EventHandler
类/构造函数可以使用扩展其基类的名称命名,这样可以正确、迅速的到其基类的名称:
EventHandlerUIEventHandlerMouseEventHandler
3.2.1类方法命名
普通方法使用意义完整的英文描述命名,采用Camel命名法。通常每个方法都是执行一个动作的,尽可能的采用动词和动宾结构。
示例:
SomeValue()
必须与new 共同使用的构造函数名应跟类名保持一致。当new 被省略时JavaScript 不会有任何编译错误或运行错误抛出。忘记加new 时会让不好的事情发生(比如被当成一般的函数),所以大写构造函数名是我们来尽量避免这种情况发生的唯一办法。
3.2.2类属性命名
类的属性采用camel命名规则
示例:
functionAccount()
{
var _accountId = '';var databaseObject = '';
this.showAccountId= function()
{
alert(this._accountId);
};
}
如果类属性设置为私有,则前面必须添加下划线。
示例:
this._somePrivateVariable = statement;
3.3 函数命名
函数名使用意义完整的英文描述,采用第一个单词的字母使用小写,剩余单词首字母大写其余字母小写的大小写混合法。
如:functiondisassociateIp(ip,instanceId)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论