JS代码规范

JS代码规范

空格

二元运算符两侧必须有一个空格,一元运算符与操作对象之间不允许有空格。

var a = !arr.length;
a++;
a = b + c;
复制代码

用作代码块起始的左花括号 { 前必须有一个空格。

// good
if (condition) {
}

function funcName() {
}

// bad
if (condition){
}

function funcName(){
}
复制代码

if / else / for / while / function / switch / do / try / catch / finally 关键字后,必须有一个空格。

// good
if (condition) {
}

while (condition) {
}

(function () {
})();

// bad
if(condition) {
}

while(condition) {
}

(function() {
})();
复制代码

在对象创建时,属性中的 : 之后必须有空格,: 之前不允许有空格。

// good
var obj = {
    a: 1,
    b: 2,
    c: 3
};

// bad
var obj = {
    a : 1,
    b:2,
    c :3
};
复制代码

函数声明、具名函数表达式、函数调用中,函数名和 ( 之间不允许有空格。

// good
function funcName() {
}

var funcName = function funcName() {
};

funcName();

// bad
function funcName () {
}

var funcName = function funcName () {
};

funcName ();
复制代码

, 和 ; 前不允许有空格。

// good
callFunc(a, b);

// bad
callFunc(a , b) ;
复制代码

单行声明的数组与对象,如果包含元素,{} 和 [] 内紧贴括号部分不允许包含空格。

// good
var arr1 = [];
var arr2 = [1, 2, 3];
var obj1 = {};
var obj2 = {name: 'obj'};
var obj3 = {
    name: 'obj',
    age: 20,
    sex: 1
};

// bad
var arr1 = [ ];
var arr2 = [ 1, 2, 3 ];
var obj1 = { };
var obj2 = { name: 'obj' };
var obj3 = {name: 'obj', age: 20, sex: 1};
复制代码

行尾不得有多余的空格。

换行

每个独立语句结束后必须换行。


运算符处换行时,运算符必须在新行的行首。

// good
if (user.isAuthenticated()
    && user.isInRole('admin')
    && user.hasAuthority('add-admin')
    || user.hasAuthority('delete-admin')
) {
    // Code
}

var result = number1 + number2 + number3
    + number4 + number5;


// bad
if (user.isAuthenticated() &&
    user.isInRole('admin') &&
    user.hasAuthority('add-admin') ||
    user.hasAuthority('delete-admin')) {
    // Code
}

var result = number1 + number2 + number3 +
    number4 + number5;
复制代码

对于 if...else...、try...catch...finally 等语句,推荐使用在 } 号后添加一个换行 的风格,使代码层次结构更清晰,阅读性更好。

if (condition) {
    // some statements;
}
else {
    // some statements;
}

try {
    // some statements;
}
catch (ex) {
    // some statements;
}
复制代码

语句

在 if / else / for / do / while 语句中,即使只有一行,也不得省略块 {...}。

// good
if (condition) {
    callFunc();
}

// bad
if (condition) callFunc();
if (condition)
    callFunc();
复制代码

函数定义结束不允许添加分号。

// good
function funcName() {
}

// bad
function funcName() {
};

// 如果是函数表达式,分号是不允许省略的。
var funcName = function () {
};
复制代码

命名

注* :
Camel命名法:驼峰命名法如 myFirstName
Pascal命名法:帕斯卡命名法如 FirstName、LastName


变量 使用 Camel命名法。

var loadingModules = {};
复制代码

常量 使用 全部字母大写,单词间下划线分隔 的命名方式。

var HTML_ENTITY = {};
复制代码

函数 使用 Camel命名法。

function stringFormat(source) {
}
复制代码

函数的 参数 使用 Camel命名法。

function hear(theBells) {
}
复制代码

类 使用 Pascal命名法。

function TextNode(options) {
}
复制代码

类的 方法 / 属性 使用 Camel命名法。

function TextNode(value, engine) {
    this.value = value;
    this.engine = engine;
}

TextNode.prototype.clone = function () {
    return this;
};
复制代码

原著GitHub地址 : styleguide

转载于:https://juejin.im/post/5cac1259f265da0360238de1

原文地址:https://www.cnblogs.com/twodog/p/12134945.html