JavaScript基本编码规范

## 缩进 ##


建议使用**四个空格**缩进,这也是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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容