copy一份我司的js代码规范,简单实用。
1.语句后需要带分号
正确:
let i = 0;
错误:
let i = 0
2.禁止使用eval
正确:
let obj = JSON.parse(str)
错误:
let obj = eval("("+str+")")
3.使用let和const,不使用var
正确:
let i = 0;
const enums = {HELLO: 1};
错误:
var i = 0;
j = 1;
4.if else while等代码块必须用{}包括起来,即使只有一行
正确:
if(true) {
xxx;
}
错误:
if(true)
xxx
5.使用===进行比较,不使用==
正确:
if(a === null) {
}
错误:
if(a == null) {
//例如 undefined == null 或者 0 == "" 都为true
}
6.使用超过两次的变量提取为临时变量
正确:
let value = this.a.b;
let v1 = value + value * 2 + value * 3;
错误:
let v1 = this.a.b + this.a.b * 2 + this.a.b * 3;
7.类的成员变量必须在constructor函数内初始化
正确:
constructor(){
this._a = "";
}
func1(){
this._a = "123";
}
render(){
<Text>this._aText>
}
8.私有的成员属性和方法,命名用开头。对外暴露的接口不能以开头
9.运算符优先级不同时必须使用小括号来规定运算顺序
正确:
let bSuccess = (a || b) && (c || d);
错误:
let bSuccess = a || b && c || d;
10.变量或者参数的类型固定,避免在多种类型间随意切换(null除外)
正确:
funcWithString(str) {
}
funcWithArray(array) {
}
错误:
func(param) {
if(typeof param === "string") {
//
}else if(Array.isArray(param)) {
//
}
}
11.只在文件头import其他文件
12.代码块的左大括号必须紧接在关键字之后
正确:
return {
}
错误:
return
{}
13.禁止将不同目的的语句合并成一句
正确:
let a = b;
if(a) {
}
错误:
if(a=b) {
}
14.使用 +=1 -=1代替++,–
正确:
i += 1;
i -= 1;
错误:
i++; ++i; i--; --i;
1.tab使用4个空格
2.多元运算符,例如+,==, ?:等前后使用空格,例如
a + b;
a == b;
a ? b : c;
a & b;
3.对象的key与value之间的:前面不需要空格,后面必须留一个空格。逗号后面必须留一个空格。
let a = {key1: value1, key2: value2};
1.文件头带有本文件功能注释。例如
/*
ChatRoom.js 聊天内容界面
xxxxxx
*/
2.函数接口要有注释,包括功能描述,参数类型,返回值类型。简单的get/set接口以及子类重写除外。例如
/*
func:实现xxx功能
@param param1: int
@param param2: string
@param param3: func
@return object
*/
func(param1, param2, param3) {
return val;
}
1.单个函数不应过长,最好不超过100行。单个文件不应过长,最好不超过3000行
2.尽量避免使用全局变量
3.使用删除代替注释代码,保持文件干净整洁
4.回调函数命名也遵循一定的规则,例如按钮点击统一为onClick开头,以便查找
5.继承自component的类,都需要有defaultProps
6.import而来的接口,如果命名不是很直观,使用as重新命名