一,命名规则
1.清晰表达意图,用英文,不用或少用缩写,避免拼音
2.避免造成误导,如定义一个整数 let array=1,容易产生误解
3.变量格式遵守小驼峰规则 如let userName = ‘好人’
4.类的定义彩用大驼峰规则 如class MyGroup{}
5.常量的定义采用大写,用下划线做分割 如const MY_PI = 3.1415926
6.尽量使用ES6的let或const
7.变量避免使用否定得布尔,如isNotError=true
8.变量名不用保留子或关键字
9.jq得变量以$开头,提高可读性
10.禁止声明变量覆盖外层作用域得变量
二,对象
1.对象属性建议用点读取,不用中括号,容易读且易于压缩
2.禁止在对象实例上直接使用Object.prototype得内置属性,如hasOwnProperty
3.for in遍历对象是,会遍历原型链上继承的属性,最好添加hasOwnProperty的判断,更好的办法是Object.keys().forEach
三,数组
1.不要给数组添加属性
2.不要再forEach内操作数组添加删除,破坏原遍历顺序,可能导致意料之外得结果
3.复制数组可用解构,或slice,建议使用解构复制
四,方法,类
1.方法名遵照小驼峰写法,加动词,如get,set,is,has
2.类中私有属性或方法以下划线开头
3.逻辑相对独立的代码块之间增加空行
4.链式调用方法超过三个要换行调用
5.回调嵌套不超四层
6.方法设计遵循单一职责原则,一个方法完成一个功能
7.方法参数不超五个,如过多,可使用对象进行传参
8.建议指定参数默认值
9.不要把入参当做工作变量,容易导致混乱
10.方法中不用arguments,用es6的rest参数代替
11.实现对外API是,入参要做合法性判断
12.项目中,函数定义两种方式,function声明和function表达式,要固定一种,别混乱用 如function getAttr(){} 或者 const getAttr = function(){}
13.建议类的方法可以返回this已支持连续调用
14.保持注释与代码逻辑一致,避免产生误导
15.方法内代码尽量不超50行
五,代码排版
1.一致的代码排版风格,固定IDE得格式化配置,并让整个团队使用
2.缩进,超长换行
3.对象属性超过三个就要换行显示
4.全局是否使用;号,建议使用
5.else放在if关闭括号同一行,trycatch,dowhile也是这样做
6.字符串建议用单引号,拼接用模板字符串
7.废弃代码要删除,不要注释
8.建议不用嵌套得三元表达式
9.if嵌套不超三层
六,其它注意问题
1.一个目录下文件不要超50,代码不要超2000行
2.每个switch都有default,即使他没有代码
3.再window上挂在属性或方法,要添加命名空间 如 window.myProjectName = {}; window.myProjectName.url = “https://*****”
4.建议import只导入使用的模块,不是inport *
5.在使用NaN时要用isNaN判断