JavaScript基本编码规范

2015-03-16  本文已影响1007人  暗夜的怒吼

## 缩进 ##

建议使用**四个空格**缩进,这也是JSLint中默认的缩进。

什么应该缩进呢?规则很简单——花括号里面的东西。这就意味着函数体,循环 (do, while, for, for-in),if,switch,以及对象字面量中的对象属性。下面的代码就是使用缩进的示例:

```javascript

function outer(a, b) {

var c = 1,

d = 2,

inner;

if (a > b) {

inner = function () {

return {

r: c - d

};

};

} else {

inner = function () {

return {

r: c + d

};

};

}

return inner;

}

```

## 花括号{} ##

即使在不必使用花括号的时候,也应该使用花括号。

// 糟糕的实例

```javascript

for (var i = 0; i < 10; i += 1)

alert(i);

```

// 会让人误解的写法

```javascript

for (var i = 0; i < 10; i += 1)

alert(i);

alert(“a”);

```

// 好的实例

```javascript

for (var i = 0; i < 10; i += 1) {

alert(i);

}

```

if条件类似:

// 坏

```javascript

if (true)

alert(1);

else

alert(2);

```

// 好

```javascript

if (true) {

alert(1);

} else {

alert(2);

}

```

### 左花括号的位置 ###

开发人员对于左大括号的位置有着不同的偏好:在同一行或是下一行。

```javascript

if (true) {

alert("It's TRUE!");

}

```

//或

```javascript

if (true)

{

alert("It's TRUE!");

}

```

**建议:总是使用花括号,并始终把在与之前的语句放在同一行:**

```javascript

function func() {

return {

name : "Batman"

};

}

```

## 分号 ##

就像使用花括号,你应该总是使用分号,即使他们可由JavaScript解析器隐式创建。

## 空格 ##

空格的使用同样有助于改善代码的可读性和一致性。

适合使用空格的地方包括:

for循环分号分开后的的部分:如`for (var i = 0; i < 10; i += 1) {...}`

for循环中初始化的多变量(i和max):`for (var i = 0, max = 10; i < max; i += 1) {...}`

分隔数组项的逗号的后面:`var a = [1, 2, 3];`

对象属性逗号的后面以及分隔属性名和属性值的冒号的后面:`var o = {a: 1, b: 2};`

限定函数参数:`myFunc(a, b, c)`

函数声明的花括号的前面:`function myFunc() {}`

匿名函数表达式function的后面:`var myFunc = function () {};`

**使用空格分开所有的操作符和操作对象**,这意味着在+, -, *, =, <, >, <=, >=, ===, !==, &&, ||, +=等前后都需要空格。

// 宽松一致的间距,使代码更易读。好的实例:

```javascript

var d = 0,

a = b + 1;

if (a && b && c) {

d = a % c;

a += d;

}

```

// 不好的实例

```javascript

var d = 0,

a = b + 1;

if (a&&b&&c) {

d=a % c;

a+= d;

}

```

最后需要注意的一个空格:左花括号前最好使用空格!

## 变量声明 ##

所有的变量必须在使用前进行声明。

将var语句放在函数的首部。

最好把每个变量的声明语句单独放到一行,并加上注释说明。

```javascript

var currentEntry; // 当前选择项

var level;        // 缩进程度

var size;         // 表格大小

```

尽量减少全局变量的使用。**不要让局部变量覆盖全局变量。**

## 函数声明 ##

所有的函数在使用前进行声明。

函数名与`(`之间**不应该**有空格。构造函数的`)`与`{`之间应插入一个空格。函数程序体应缩进四个空格。

```javascript

function outer(c, d) {

var e = c * d;

function inner(a, b) {

return (e * a) + b;

}

return inner(0, 1);

}

```

## 命名 ##

变量名由26个大小写字母,10个数字,和_组成,并且只能用字母开头。不能使用中文或者$(美元符号)或者(反斜杠)。

大多数的变量名和方法命应以小写字母开头。

必须与new共同使用的构造函数名应以大写字母开头。

全局变量应该全部大写。

### 语句 ###

**简单语句**

每一行最多只包含一条语句。把;(分号)放到每条简单语句的结尾处。

**复合语句**

复合语句是被包含在{ }(大括号)的语句序列。

## 格式样例: ##

### if 语句 ###

```javascript

if (condition){

statements;

}

if (condition) {

statements;

} else {

statements;

}

if (condition) {

statements;

} else if (condition) {

statements;

} else {

statements;

}

```

### for 语句 ###

```javascript

for (initialization;condition; update) {

statements;

}

```

```javascript

for (variable in object) if (filter) {

statements;

}

```

第一种形式的循环用于已经知道相关参数的数组循环。

第二种形式应用于对象中。object原型中的成员将会被包含在迭代器中。

### while 语句 ###

```javascript

while (condition){

statements;

}

```

### do 语句 ###

```javascript

do {

statements;

} while (condition);

```

不像别的复合语句,do语句总是以`;`结尾。

### switch 语句 ###

```javascript

switch (expression){

case expression:

statements;

default:

statements;

}

```

每个 case与switch对齐。

### try 语句 ###

```javascript

try {

statements;

} catch (variable){

statements;

}

try {

statements;

} catch (variable){

statements;

} finally {

statements;

}

```

### continue 语句 ###

避免使用continue语句。它很容易使得程序的逻辑过程晦涩难懂。

### with 语句 ###

避免使用with语句。

## 注释 ##

不要吝啬注释。

i = 0; //让i等于0

上一篇下一篇

猜你喜欢

热点阅读