##1. 代码格式化
>当定义连续几个变量时,采用如下这种排版方式,我是从underscore.js中学习到的,感觉排版清楚,会减少很多不必要的var关键字。
```
//bad code
var a=1;
var b=2;
var c=3;
//good code
var a=1,
b=2,
c=3;
```
##2. 命名
>当查找jQuery对象,最好在变量前加$前缀以表示是jQuery对象。
```
// bad code
var first = $('#first'),
second = $('#second'),
value = $first.val();
//good code
var $first = $('#first'),
$second = $('#second'),
value = $first.val();
```
##3. 字符串过长截断
>按一定长度截断字符串,并使用+运算符进行连接。分隔字符串尽量按语义进行,如不要在一个完整的名词中间断开。特别的,对于HTML片段的拼接,通过缩进,保持和HTML相同的结构,也可使用数组来进行拼接,相对+运算更容易调整缩进。
```
var html = '' // 此处用一个空字符串,以便整个HTML片段都在新行严格对齐
+ ''
+ 'Title here
'
+ 'This is a paragraph
'
+ ''
+ '';
var html = [
'',
'Title here
',
'This is a paragraph
',
'',
''
];
html = html.join(''); // 注意需要join
```
##4. 过长的逻辑条件组合
>当较复杂的逻辑条件组合比较长时,应当将每个条件独立一行,逻辑运算符放置在行首进行分隔,或将部分逻辑按逻辑组合进行分隔。最终将右括号)与左大括号{放在独立一行,保证与if内语句块能容易视觉辨识。
```
// 注意逻辑运算符前的缩进
if (user.isAuthenticated()
&& user.isInRole('admin')
&& user.hasAuthority('add-admin')
|| user.hasAuthority('delete-admin')
) {
// Code
}
```
##5. 文件注释
>以/**开始,以*/结束,文件注释中以@file文件说明,@author开发者信息,@date时间
```
/**
* @file 弹出对话框组件
* @author tuanfe@baidu.com
* @date 2014/5/11
*/
```
##6. 空格
>在特定的位置加上空格有助于代码的可读性,以下位置 必须(MUST) 加上空格:
>* 除括号外,所有运算符的前后,如
>* 用作代码块起始的左大括号{前,包括if、else、try、finally这些关键字之后,以及函数定义的参数列表之后
>* 以下关键字之后:for、switch、while、function
>* 对象初始化({ ... })的每个属性名的冒号:后
>* 所有逗号,后
>* 单行的对象初始化({ ... })左大括号{后和右大括号}前
注意:函数声明与具名函数表达式,函数名与括号之间 不允许(MUST NOT) 包含空格,以期和函数调用保持一致。以下是一个函数的正确声明方式:
```
function foo(x, y, z) {
// FunctionBody
}
var foo = function (x, y, z) {
// FunctionBody
};
var foo = function foo(x, y, z) {
// FunctionBody
};
```