前端代码规范细则
本细则分为强制和非强制内容,欢迎提出 issue
强制
强制使用
eslint函数注释强制使用
jsDoc注释,即/**开头的注释格式代码结尾一律不得加
;,此项可以由prettier格式化工具自动实现字符串一律使用单引号
'',多行字符串一律使用模板字符串
var a = `adf |
不得使用
eval不得使用
==,一律使用===,!==对象(包含数组)格式,逗号,冒号后面需要留空格,运算符前后需要留空格。此项也可以由代码格式化工具实现,注意即可
例子如下
var a = [1, 2] |
不得使用
delete关键字删除对象属性,如确需需要删除属性,使用Reflect.deleteProperty进行操作不得使用隐式转换进行代码运算操作,例如
var a = 100 + 'e' // '100e' |
函数命名务必简洁明了,力求能通过函数名得出函数作用,减少无关注释
公共函数一律使用
__开头命名,并且首字母大写,例如
/** |
拥有返回值的函数必须考虑边界情况,不得存在边界条件下没有返回值的情况
使用
import语法不得使用import * as结果语法,确需引用多个,请使用解构语法DOM 对象不得使用数组储存,一律使用
WeakMap和WeakSet数组存储数据不得超出数组长度,js 数组最大长度为 0xFFFFFFFF = 4294967295
错误处理
不得轻易修改函数原型,确需修改,则不应向用户暴露接口
非强制
推荐使用 Typescript
解构语法、对象等首尾留空,例如
import { Component, Vue, Provide, Watch } from 'vue-property-decorator' |
对象键名不使用数字
能使用箭头函数
=>,就不用普通函数能使用
es6新特性就用新特性递归尽量使用尾递归
对象浅复制,对象合并尽量使用扩展运算符
...取整少用
parseInt少用
try{}catch(e){}语法