Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【可维护】的JavaScript编写 #13

Open
Kelichao opened this issue Feb 7, 2017 · 0 comments
Open

【可维护】的JavaScript编写 #13

Kelichao opened this issue Feb 7, 2017 · 0 comments

Comments

@Kelichao
Copy link
Owner

Kelichao commented Feb 7, 2017

一、基本的格式化

1.1缩进

推荐的是一个tab,优点是比较便捷,而且层级明显,缺点是不同的编辑器对tab Size的理解不一样。

if (1) {
    if (2) {
        if (3) {
            // some code
        }
    }
}

1.2语句结尾

推荐在非条件语句结束时统一加上分号“;”

// 推荐
var name = "Bob";
// 不推荐
var age = 100

1.3 行的长度

推荐将行的长度限制在80个字符

1.4 换行

换行后需要两个tab,并且逗号需要留在上一行

// 换行后需要两个tab,并且逗号需要留在上一行
doit(element, window, document, "some code", true, 
        "abc", "def");

1.5空行

  1. 在方法之间。
  2. 在方法中的局部变量和第一条语句之间。
  3. 在多行或单行注释之前。
  4. 在方法内的逻辑片段之间插入空行,提高可读性。

1.6命名

驼峰法用于普通变量,功能函数

var anotherNames

首字符大写用于构造函数

function Model(){// somecode}

全大写字母用于常量

var PERSON_COUNT = 10;

1.6.1变量和函数

变量名前缀应当为名词

var count = 10;
var myName = "Bob";

方法函数名应该以动词开头

function getName() {
    // some code
}
动词 含义
can 返回布尔值
has 返回布尔值
is 返回布尔值
get 返回一个非布尔值
set 用于保存值

1.7直接量

换行

//合法,但不推荐
var str = "asdfghjklzxc\
vbnbm";

// 推荐 "+" 分割
var str = "asdfghjklzxc" + 
          "vbnbm";

二、注释

单行注释

// 我是单行注释
fn();

多行注释

/*
 * 这是一个多行注释
 * 星号后面要留空格
 */
fn();

特殊注释

/*
 * TODO: 说明代码还未完成,应当包含下一步要做的事。
 * HACK: 该问题可能有更好的解决办法
 * XXX:说明代码是有问题的,应当尽快修复
 * FIXME: 有问题,要紧程度比XXX低
 * REVIEW: 说明代码任何可能的改动都需要评审
 */

三、语句和表达式

3.1

注意空格,对齐花括号

if (condiction) {

}

3.2循环语句中的变量提前

var i;
for (i = 0; i < 10; i++) {
    // some code
}

3.3运算符间距

var fond = (value1 === value2);

四、变量声明

4.1

// 推荐多var方式声明变量
// 且统一放在函数体顶部
var a = 1;
var b = 2;
var c = 3;

4.2

推荐用全等(===)代替双等

if (1 === "1") {
    // some code
}
@Kelichao Kelichao changed the title 编写可维护的JavaScript 【可维护】的JavaScript编写 May 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant