这是一份为我团队自制的代码规范,参照了Javascript的书籍和网上的代码,总结而成。
1. 代码缩进采取四格,不能用tab键,只用空格,避免产生不必要的错误。在vim中配置如下代码:
2. Javascript代码不应该被包含在HTML文件中,除非这是段特定只属于此部分的代码。
变量和标示符:
- Javascript区分大小写,所以按照惯例标示符采用驼峰大小写格式,也就是第一个字母小写,剩下有意义的单词大写,不要再命名中使用“$”和“\”。如:
firstSecondmyCar
2. 常量采用惯例全大写形式,多个单词用下划线隔开。如:
MYCARCAR_AND_MODEL
3. 能不用就不用全局变量.
4. 不建议修改变量保存值的类型,如:
var message = “hi”;message = 100;
- 变量赋值时,“=“两边要加一个空格。如:
var message = “HelloWorld”
- 保存对象没有真正保存对象时,要明确地让该变量保存null值。
- 大量的逻辑出现时,注意给用括号分隔开。如:
运算符:
(a>0 && b==1) || (ture || b>1)
- 逻辑与/或:使用时,两个操作数与“&&/||“之间都要有一个空格。如:
var result = true && false;
- 加,减、乘、除、求模、小于、大于、等于、小于等于、大于等于号等所有二元运算符两旁要用一个空格隔开,如:var result = 34 * 56;
- 条件操作符:每个符号前后要加一个空格。如:a = 0 ? a = 1 : a = 0;
- 复合赋值运算符两旁要有一个空格。如: a *= 2;
- 要使用严格的条件运算符,如: ===代替==、!==代替!=、
- 每条语句后面要加“;”作为结束标志,有利于避免压缩错误和提高性能。如:
语句
var message;
- 避免每行超过80个字符。超过的考虑折行显示。
2. 代码块要以左花括号开头,右花括号结束,即使可以单行写执行代码也要用“{}”。如:
if (test){ alert(test);}
3. 如上代码,if 语句书写时,if后要有一个空格与括号隔开,括号内的参数与括号不加空格,括号之后紧接花括号,有else时,if的括号后要空一格紧接花括号, else空一格紧接上一个花括号,其后空一格接下一个花括号,除了if,while,do-while,switch,for亦是如此。如:
if (a = 0) { a = 1;} else { a = 0;} while (i == 0) { i++;} do { i--;} while (i > 0); for (i = 0; i >= 5; i++ ){}
4. 当if—else 执行语句只有一条时,请用成“XX?XX:XX;“的问号运算符。
if (a = 0) { a = 1;} else { a = 0;}
改写成:
a = 0 ? a = 1 : a = 0;
5. 如果使用label语句时,一定要用描述性的标签,同时不要嵌套过多的循环。
6. 不要使用 with, void , eval。
注释:
每行注释的注释符后要加一个空格后才写注解,如:
// My name is CKJ.
1. 单行注释:用“//”标注,注意避免无意义的注释。
2. 多行注释:用/**/嵌套,但是每一行的前面要有“*”号,且星号都要对齐,如:
/** This is a comment*/
3. 脚本文件头注释规范,如下:
/*** @fileOverview 脚本文件描述* @author <开发者> ,…* @version* @updateDate 开发者>*/
4. 编写只用于极少数使用的变量时,在行尾附上注释。
5. 在较大范围内使用的变量,在其作用域的开头附上注释。
6. 在注释之前要用一行空白行。
整数:
- 字符串转化为整数,尽量不要用number而用parseInt函数。
- 使用parseInt()时,必须为第二个参数指定基数。如:
var num1 = pareseInt(“2”, 2);
引用类型:
- 声明object类时,不要省略括号。如:不是var a = new Object 而是 var a = new Object();
2. hash中的key与中左右大括号无空格,key:value的冒号之间也无空格。只有“,”之后要加一个空格。如:
{firstname:"Kejia", lastname:"Cai"},
3.访问属性时,采用“[]”的方括号表示法的访问方式访问。如:
man[firstname]
4. Key可以是字符串,如:
man[“first name”]
5. 静态类属性全部使用大写字母。如:
Ext.MessageBox.YES = “Yes”;
6. 哈希的value如果是字符串,都采用单引号表示。如:
region: ‘center’;
7. 数组有很多方法,可以巧妙运用如:
pop(), push(), shift(), unshift(), concate(),
reverse(), sort(), slice(), indexOf(), lastIndexOf(),
every(), filter(), forEach(), map(), some(),
函数:
Ext.create('Ext.data.Store', { storeId:'employeeStore', fields:['firstname', 'lastname', 'seniority', 'dep', 'hired'], data:[ {firstname:"Michael", lastname:"Scott"}, {firstname:"Dwight", lastname:"Schrute"}, {firstname:"Jim", lastname:"Halpert"}, {firstname:"Kevin", lastname:"Malone"}, {firstname:"Angela", lastname:"Martin"} ]});
- 函数的命名必须为动词或动词短语。如:
create();deleteUser();
2. 函数的括号与函数名间不要空格,参数与左括号和右括号间不要空格,每个参数用逗号隔开,逗号之后要加一个空格。
3. 参数中有hash或数组:
(1).当数组或hash只有一层时,直接独行显示。如:
{firstname:"Kejia", lastname:"Cai"},
(2).当数组或hash中有嵌套时,采用Allmans风格,即左右大括号/中括号独占一行(并不是单独一个符号一行,而是与匹配的扩号和其中的内容分开,不再同一行)。如:
data:[ {firstname:"Michael", lastname:"Scott"}, {firstname:"Dwight", lastname:"Schrute"}, {firstname:"Jim", lastname:"Halpert"}, {firstname:"Kevin", lastname:"Malone"}, {firstname:"Angela", lastname:"Martin"} ]
4. 函数中传入哈希时,一定要用Allmans风格,如:
Ext.create(‘Ext.container.Viewport’, {layout: ‘border’,items: []});
5. 函数之间要用一行空白行。
几种EXT的控件简写格式:
名称 | Ext控件 | 简称 |
按钮 | Button | btn |
窗口 | Window | win |
表格 | GridPanel | grid |
数据存储仓库 | Store | store |
数据列 | ColumnModel | cm |
数据选择模式 | CheckboxSelectionModel | sm |
表格底部工具栏 | PagingToolbar | paging |
树 | TreePanel | tree |
工具栏 | Toolbar | tbar |
表单 | FormPanel | form |
复选框 | Checkbox | Chk |
下拉列表框 | ComboBox | cbo |
文本标签 | Label | Lbl |
数字文本框 | NumberField | Numfield |
单选按钮 | Radio | Radio |
文本域 | TextArea | txtarea |
文本框 | TextField | txt |