js代码规范

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._a</Text>
}

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. 驼峰命名规则
  2. 类名大写开头,普通变量小写开头,常量全大写并使用_连接。
  3. bool变量要使用is或者b开头,其它有必要提示类型的变量名也一样
  4. 文件命名,当前为大写字母开头,继续遵循此规则
  5. 回调函数命名统一为onXXX风格,按钮点击回调函数命名统一为onClickXXX
  6. 单行语句不超过120个字符
  7. 代码块和函数之间使用空行分隔

项目文件:

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重新命名

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值