前端规范-javascript

19 阅读2分钟

Javascript 规范

1. 命名

1.1. 采用小写驼峰命名 lowerCamelCase,代码中的命名均不能以下划线,也不能以下划线或美元符号结束

反例: _name/name_ /name$

1.2. 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式

正例: localValue / getHttpMessage() / inputUserId

其中 method 方法命名必须是 动词 或者 动词+名词 形式

正例:saveShopCarData /openShopCarInfoDialog

反例:save / open / show / go

1.3 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长

正例: MAX_STOCK_COUNT

反例: MAX_COUNT

2.代码格式

2.1 使用 2 个空格进行缩进

if (x < y) {
  x += 10;
} else {
  x += 1;
}

2.2 不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性

说明:任何情形,没有必要插入多个空行进行隔开。

2.3 字符串

统一使用单引号(‘),不使用双引号(“)。这在创建 HTML 字符串非常有好处:

正例:

let str = 'foo';

let testDiv = '<div id="test"></div>';

反例:

let str = 'foo';

let testDiv = "<div id='test'></div>";

2.4 对象声明

2.4.1 使用字面值创建对象

正例: let user = {};

反例: let user = new Object();

2.4.2 使用字面量来代替对象构造器

正例:

var user = {

  age: 0,

  name: 1,

  city: 3

};

反例:

var user = new Object();

user.age = 0;

user.name = 0;

user.city = 0;

2.5 使用 ES6+

必须优先使用 ES6+ 中新增的语法糖和函数。这将简化你的程序,并让你的代码更加灵活和可复用。比如箭头函数、await/async , 解构, let , for…of 等等。

2.6 括号

下列关键字后必须有大括号(即使代码块的内容只有一行):

if, else, for, while, do, switch, try, catch,finally, with。

正例:

if (condition) {

  doSomething();

}

反例:if (condition) doSomething();

2.7 undefined 判断

永远不要直接使用 undefined 进行变量判断;使用 typeof 和字符串’undefined’对变量进行判断。

正例:

if (typeof person === 'undefined') {

...

}

反例:

if (person === undefined) {

...

}

2.8 条件判断和循环最多三层

条件判断能使用三目运算符和逻辑运算符解决的,就不要使用条件判断,但是谨记不要写太长的三目运算符。如果超过 3 层请抽成函数,并写清楚注释。

2.9 慎用 console.log

因 console.log 大量使用会有性能问题,所以在非 webpack 项目中谨慎使用 log 功能。