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};
变量命名:
- 驼峰命名规则
- 类名大写开头,普通变量小写开头,常量全大写并使用_连接。
- bool变量要使用is或者b开头,其它有必要提示类型的变量名也一样
- 文件命名,当前为大写字母开头,继续遵循此规则
- 回调函数命名统一为onXXX风格,按钮点击回调函数命名统一为onClickXXX
- 单行语句不超过120个字符
- 代码块和函数之间使用空行分隔
项目文件:
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重新命名
阅读全文
0 0
- js代码注释规范
- js代码规范
- js代码规范
- js常用代码规范
- 前端js代码规范
- JS代码规范笔记
- js代码规范
- js代码规范
- 如何规范js代码
- js代码规范
- js代码规范(转载)
- Js、css代码文件规范
- js 代码命名规范系列
- JS代码规范工具对比
- js代码规范和动态加载js
- js/javascript代码注释规范与示例
- jshint 检查js文件代码规范
- js/javascript代码注释规范与示例
- Python assert 断言
- android 多点触摸
- SQLite学习(二)
- java 多线程访问共享变量不安全因素分析
- SLAM学习——李群与李代数
- js代码规范
- HDU
- 揭开跨域的面纱(下)
- 期末算法作业
- 总结
- 跟我一起学C语言(第五天)
- CDI系列学习--CDI注入深入理解(结合FacesContext)
- qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
- (OK) MIMP