美文网首页
前端代码规范

前端代码规范

作者: 来了啊小老弟 | 来源:发表于2019-10-08 15:25 被阅读0次

    一、 基本规则描述

    1 、变量命名、函数:

    a 、变量命名语义化;

    b 、不能使用拼音;

    c 、函数的命名建议动词开头;

    2 、常量命名全部使用大写字母;

    3 、提示语归类(暂定):所有的提示语写入到一个 JS 文件里,便于管理;

    4 、正则表达式:正则表达式写在一个 JS 文件里,方便管理;

    5 、接口路径分类管理,写在不同的 JS 文件里;

    6 、文件的编码格式: UTF-8 ;

    7 、修改别人的代码:日期、说明、修改人、开始、结束、 bug 号;

    8 、禁止在 html 里写行内样式,可以在 html 里动态绑定行内样式

    10 、使用 ES6 的新语法(包含但不限于以下几种):

    a 、解构赋值:

    b 、箭头函数:

    c 、模板字符串:

    11 、其它规范细则请参考第五条《代码规范细则》

    二、 CSS 样式

    1 、 css 样式文件头部注释:

    模块:【公共模块】

    页面名称:【 common.css 】

    说明:【公共的样式】

    作者

    日期

    2 、 样式的名称全部使用小写,用下户线“ _ ”,结束添加分好“;”;

    3 、公共的样式名称:【 common_ 样式名称】

    4 、组件内的样式名称:【页面名称 / 模块名称 _ 样式名称】

    5 、公共的样式文件,样式要分组 【 font 】【 padding 】【 margin 】

    三、 VUE 模板

    1 、文件命名:驼峰法命名,【父模块 + 功能名 +.vue 】;

    2 、 vue 模板文件头部注释:

    模块:【一级模块 - { 二级模块 } - { 三级模块 } 】

    页面名称:【页面的名称 .vue 】

    说明:【页面的对应的功能描述】

    作者:【创建人】

    日期:【创建日期】

    3 、页面标签;

    <template></template>

    <script></script>

    <style scoped></style>

    4 、 javascript 方法注释:

    描述:【方法的功能】

    作者

    时间

    参数:【数据类型】【参数描述】

    return :【数据类型】【参数描述】

    5 、 HTML 标签使用要求:

    a 、标签要语义化;

    b 、标签要成对,开始标签结束标签

    c 、页面模块要分组,注释要写清楚

    d 、代码缩进要按照标准,要有层级关系,层次分明;

    四、组件

    1 、文件命名:【功能名称 +.vue 】;

    2 、组件头部注释:

    模块

    页面名称

    说明

    作者

    日期

    demo :【描述组件如何使用、自定义参数说明】

    五、代码规范细则

    使用两个空格进行缩进 。

    除需要转义的情况外,字符串统一使用单引号。

    不要定义未使用的变量。

    关键字后面加空格

    函数声明时括号与函数名间加空格。

    始终使用   ===   替代   == 。

    例外:   obj == null   可以用来检查   null || undefined 。

    字符串拼接操作符 (Infix operators) 之间要留空格。

    逗号后面加空格。

    else 关键字要与花括号保持在同一行。

    多行 if 语句的的括号不能省。

    不要丢掉异常处理中 err 参数。

    使用浏览器全局变量时加上   window.   前缀。

    不允许有连续多行空行。

    对于三元运算符   ?   和   :   与他们所负责的代码处于同一行

    每个 var 关键字单独声明一个变量。

    条件语句中赋值语句使用括号包起来。这样使得代码更加清晰可读,而不会认为是将条件判断语句的全等号( === )错写成了等号( = )

    单行代码块两边加空格。

    对于变量和函数名统一使用驼峰命名法。

    不允许有多余的行末逗号。

    始终将逗号置于行末。

    点号操作符须与属性需在同一行。

    文件末尾留一空行。

    函数调用时标识符与括号间不留间隔。

    键值对当中冒号与值之间要留空白。

    构造函数要以大写字母开头。

    无参的构造函数调用时要带上括号。

    对象中定义了存值器,一定要对应的定义取值器。

    子类的构造器中一定要调用   super

    使用数组字面量而不是构造器。

    避免使用   arguments.callee   和   arguments.caller 。

    避免对类名重新赋值。

    避免修改使用   const   声明的变量。

    避免使用常量作为条件表达式的条件(循环语句除外)。

    正则中不要使用控制符。

    不要使用   debugger 。

    不要对变量使用   delete   操作。

    不要定义冗余的函数参数。

    类中不要定义冗余的属性。

    对象字面量中不要定义重复的属性。

    switch   语句中不要定义重复的   case   分支。

    同一模块有多个导入时一次性写完。

    正则中不要使用空字符。

    不要解构空值。

    不要使用   eval() 。

    catch   中不要对错误重新赋值。

    不要扩展原生对象

    避免多余的函数上下文绑定。

    避免不必要的布尔转换。

    不要使用多余的括号包裹函数。

    switch   一定要使用   break   来将条件分支正常中断。

    不要省去小数点前面的 0 。

    避免对声明过的函数重新赋值。

    不要对全局只读对象重新赋值。

    注意隐式的   eval() 。

    嵌套的代码块中禁止再定义函数。

    不要向   RegExp   构造器传入非法的正则表达式。

    不要使用非法的空白符。

    禁止使用   __iterator__ 。

    外部变量不要与对象属性重名。

    不要使用标签语句。

    不要书写不必要的嵌套代码块。

    不要混合使用空格与制表符作为缩进。

    除了缩进,不要使用多个空格。

    不要使用多行字符串。

    new   创建对象实例后需要赋值给变量。

    禁止使用   Function   构造器。

    禁止使用   Object   构造器。

    禁止使用   new require 。

    禁止使用   Symbol   构造器。

    禁止使用原始包装器。

    不要将全局对象的属性作为函数调用。

    不要使用八进制字面量。

    字符串字面量中也不要使用八进制转义字符。

    使用   __dirname   和   __filename   时尽量避免使用字符串拼接。

    使用   getPrototypeOf   来替代   __proto__ 。

    不要重复声明变量。

    正则中避免使用多个空格。

    return 语句中的赋值必需有括号包裹。

    避免将变量赋值给自己

    避免将变量与自己进行比较操作。

    避免使用逗号操作符。

    不要随意更改关键字的值。

    禁止使用稀疏数组( Sparse arrays )。

    不要使用制表符。

    正确使用 ES6 中的字符串模板。

    使用   this   前请确保   super()   已调用。

    用   throw   抛错时,抛出   Error   对象而不是字符串。

    行末不留空格。

    不要使用   undefined   来初始化变量。

    循环语句中注意更新循环变量。

    如果有更好的实现,尽量不要使用三元表达式。

    return , throw , continue   和   break   后不要再跟代码。

    finally   代码块中不要再改变程序执行流程。

    关系运算符的左值不要做取反操作。

    避免不必要的   .call()   和   .apply() 。

    避免使用不必要的计算值作对象属性。

    禁止多余的构造器。

    禁止不必要的转义。

    import, export 和解构操作中,禁止赋值到同名变量。

    属性前面不要加空格。

    禁止使用   with 。

    对象属性换行时注意统一代码风格。

    代码块中避免多余留白。

    展开运算符与它的表达式间不要留空白。

    遇到分号时空格要后留前不留。

    代码块首尾留空格。

    圆括号间不留空格。

    一元运算符后面跟一个空格。

    注释首尾留空格。

    模板字符串中变量前后不加空格。

    检查   NaN   的正确姿势是使用   isNaN() 。

    用合法的字符串跟   typeof   进行比较操作。

    自调用匿名函数 (IIFEs) 使用括号包裹。

    yield *   中的   *   前后都要有空格。

    不要使用分号。

    不要使用   (,   [, or   `   等作为一行的开始。在没有分号的情况下代码压缩后会导致报错,而坚持这一规范则可避免出错。

    参考链接:

    https://standardjs.com/rules-zhcn.html#javascript-standard-style

    相关文章

      网友评论

          本文标题:前端代码规范

          本文链接:https://www.haomeiwen.com/subject/nbzgvqtx.html