读书人

Javascript轨范

发布时间: 2012-06-30 17:20:12 作者: rapoo

Javascript规范

原文:http://wiki.zx.shopex.cn/advance/js.html#id6

关于javascript,你必须知道,你不是一个人在战斗!

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

所有的代码都要变成可供他人容易阅读的。

软件的长期价值直接源于其编码质量。在它的整个生命周期里,一个程序可能会被许多人阅读或修改。

如果一个程序可以清晰的展现出它的结构和特征,那就能减少在以后对其进行修改时出错的可能性。编程规范可以帮助程序员们增加程序的健壮性。

所有的JS代码都是暴露给公众的。所以我们更应该保证其质量和可阅读性,保持整洁很重要。

Javascript代码格式规范

1.html中外部脚本引入尽量放在尾部。

2.编码统一采用utf-8。

3.不要在html标签中混合script事件代码。

4.一个html文件中尽量只出现一个<script>代码块,所有代码块用

(function(){    //代码})();

包裹,可减少全局污染。5.JS代码如果只针对特定HTML可以写在页面里,使用率高的代码块可以考虑写入公共JS文件调用。

6.程序块采用缩进风格编写,缩进采用4个空格,避免使用tab缩进以免各编辑器显示不一致。

7.一元操作符(如 delete, typeof, void)或在某些关键词(如 return, throw, case, new) 之后, 不要使用括号。

8.优先使用 '' 包裹字符串。

9.多行字符串使用 + 拼接形式, 不要使用 \ 拼接,如果需要换行,+ 请加在行尾。

10.避免多出额外的,(逗号),如:

        var arr = [1,2,3,];list = {a:3,b:5,};

?

最后的,(逗号)多余,应删除,分别改为:

var arr = [1,2,3];list = {a:3,b:5};

这些错误一定要仔细,避免ie中报“缺少字符串,标识符或数字”的BUG。

11.作 for-in循环时应避免来自原型链上的污染。可用hasOwnProperty方法检查是否为自身成员。

12.不要吝啬你的注释。当代码块更新时,注释也要对应更新。

13.合理使用空格。空格应在以下情况下使用:

跟在“(”(左括号)后面的关键字应被一个空格隔开。如

    while (true) {

?

函数参数与“(”(左括号)之间不应该有空格。这能帮助区分关键字和函数调用。

所有的二元操作符,除了“.”(点) 和“(”(左括号)和 “[”(左方括号)外应用空格将其与操作数隔开。

三元操作符(? :)两边要留有空格。

一元操作符与其操作数之间不应有空格,除非操作符是个单词,比如 typeof。

每个在控制部分,比如 for 语句中的 “;”(分号)后须跟一个空格。

每个 “,”(逗号)后应跟一个空格。

行尾不要有空格。

Javascript命名规则

原则:尽量避免潜在冲突;精简短小, 见名知意。

1.变量名应由26个大小写字母(A..Z,a..z),10个数字(0..9),和_(下划线)组成。避免使用国际化字符(如中文)。注意:JS是区分大小写的。

2.变量名以字母、下划线 _ 或美元符号 $ 开头,允许名称中包含字母、数字、下划线 _ 和美元符号 $ 。

3.变量名尽量采用有意义的英文单词或缩写命名,不要用拼音。

4.采用首字母小写,其它单词首字母大写的驼峰式命名,如userName,arrayIndex。

5.Object对象名要以大写开头,如:var Tabs = {}。Hash不必遵从此规则。

6.变量、参数、成员变量、函数等名称均以小写字母开头,构造器的名称以大写字母开头。

7.全局变量应该全部大写。(Javascript没有宏或者常量,所以不会因此造成误会)

8.下划线'_'开头的变量一般习惯于标识私有/局部成员。而美元符号'$'开头的变量习惯于标识系统相关,比如系统进程等。应避免用下划线'_'或美元符号'$'来命名标识符。注意:store()的属性名最好以 _ 开头避免和框架冲突。如:

el.store('_detail','el-list');

?

9.函数命名必须能够体现函数的功能。

10.必须与new共同使用的构造函数名应以大写字母开头。当new被省略时Javascript不会有任何编译错误或运行错误抛出。忘记加new时会让不好的事情发生(比如被当成一般的函数),所以大写构造函数名是我们来尽量避免这种情况发生的唯一办法。

11.系统级class对象,最好前面加Ex_开头避免和框架类冲突,如:Ex_Tabs

(function(){var formTime, toTime,Ex_Timer = this.Ex_Timer = new Class({$event:[],onStart:function(){},_show:function(){}}); });

?

12.各种页面对象在命名时考虑使用以下对应前缀:

读书人网 >JavaScript

热点推荐