js代码规范

来源:互联网 发布:年轻的程序员 编辑:程序博客网 时间:2024/05/29 10:41

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

原创粉丝点击