前端编程规范(适用团队开发,教学,个人提升)

目录

前言

准则

命名规范

HTML

CSS(LESS,CSS,SCSS)

JAVASCRIPT

项目名称

图片名称原则

文件存放位置

HTML书写规范

标签和符号

排版

CSS书写规范

javascript书写规范

安全规范


前言

  1. 提高团队协作效率
  2. 提示开发效率和后期优化维护
  3. 方便新进成员快速上手
  4. 输出高质量的代码
  5. 适用所有pcweb类项目,移动端由于设备可以宽限

准则

  1. 符合web标准,语义化的html,结构表现行为分离,兼容性优良
  2. 代码简洁明了,减少服务器负载,保证最快的速度运行
  3. 老项目的维护可以有所宽限
  4. 尽量不使用汉语拼音

命名规范

HTML

多个单词组成时候,采用连字符连接方式,例如:error-page.html、success-report.jsp

CSS(LESS,CSS,SCSS)

多个单词组成时,采用连字符的形式,例如:report-detail.css、report-main.scss、report-main.less

JAVASCRIPT

所有的JS文件名,多个单词组成时,采用连字符连接方式,例如:account-user.js

项目名称

项目名称采用小写字母,不包括汉字,空格和特殊字符,以连接分隔符并以字母开头。例如:project-name。URL的分隔符,是资源分割名称的最好选择。

目录文件命名和上述类似,有复数结构时,采用data-models

图片名称原则

 图片命名分为头尾两个部分,用连字符分割,语义话命名。例如:banner logo button menu pic title。

文件存放位置

没有强制要求,结合实际框架存放

HTML书写规范

带doctype使每个浏览器尽量一直都展示,属性使用ie兼容,编码使用UTF-8,a标签的空链接使用javascript:void(null)代替原来的#标记。引入css和js时,省去type属性,因为默认有。属性的顺序按照特定的顺序保证易读性,id->class->name->data-*->src,for,type,href->title,alt->aria-*,role。

标签和符号

  1. 标签闭合
  2. js生成标签
  3. 引号,属性使用双引号,不要使用单引号
  4. 减少标签数量,尽量避免使用多余的父节点,使用迭代和重构使得html变得更少
  5. 减少复杂度,减少标签数量

排版

  1. html代码格式规则,块元素和表格元素独占一行,每个子元素相对父元素进行缩进
  2. 缩进使用四个空格soft tabs,保证代码显示一致
  3. 语义化,注释规范

CSS书写规范

  1. 预编译器:scss,less,stylus
  2. 文件编码和样式引用:使用无bom的UTF-8编码。更广泛的试用性。
  3. 代码缩进,使用4个空格
  4. 选择器的{,子选择器的+ > ?要增加空格
  5. 颜色rgba逗号之间必须包括空格
  6. 行长度,不超过120字符,URL超长使用逻辑分组
  7. id和class命名使用连字符
  8. 嵌套层级不应大于三级
  9. 属性可以使用缩写:padding,margin,font
  10. css继承属性有:font系列,文本系列text-align line-height text-indent word-spacing color,元素可见属性:visible,光标cursor,
  11. 属性书写顺序:布局属性 > 自身属性 > 文本属性 > 其他属性 
  12. 值和单位,长度为0可以省去单位,颜色可以缩写,#fff,不允许使用blue
  13. 字体编码:使用英文字体,有空格需要放在引号内
  14. 行高:line-height:1.5使用数值
  15. 兼容性:浏览器属性前缀,hack
  16. 注释规范:顶部注释,模块注释,单行和多行注释,特殊注释(todo,bugFix)

javascript书写规范

.js文件存储js程序,js代码不应该嵌入到html中,除非那些代码是一个单独会话的特有。js文件放置在html越靠后的位置越好。

  1. 缩进,四个空格
  2. 行宽,一行代码不超过80字符,一条语句不能单独写完时候,有必要拆分它。
  3. 变量声明:提前声明,js没有块作用域,变量声名放在前面,let foo=1,bar=2,baz;
  4. 方法声明:js的hoist机制,可以使用方法变量在声明之后,大部分应该提前声明。
  5. 命名原则:应该由26个大小写字母,10个数字,和下划线_组成,必须语义化
  6. 下划线命名开头表示私有变量,但是不提供私有性,仅用于区分
  7. 小驼峰命名
  8. 构造器首字母大写
  9. 全局变量全部大写,下划线_分割
  10. 语句必须添加分分号(;)复合语句,if和条件语句都应该大括号包围,return语句不应该使用圆括号(),应该是一个单独的语句
  11. for语句,对于数组,对象,对象使用for( obj in objS){ if(Object.hasOwnProperty(1){ } ) }是合理的。while语句,while(condition) { statements } , do { statements; }while(condition){ stattements },switch(expression) { case expression: statements ;default: statements; } try语句:try {} catch(){}finally { }
  12. 不要使用continue和with语句
  13. 一元操作符:a++
  14. 二元操作符:let a = 1 + 2;
  15. 使用{}代替new Object(),使用[] 代替new Array()

安全规范

  1. 攻击手段有:sql注入,跨站攻击等。前端只能做到降低误操作带来的安全问题的几率,减少可以入侵的入口
  2. 表单提交必须进行标准的安全过滤,进行边界的检查,数据合法性,必填,特殊字符的转义。建议ts类型检查
  3. 防止xss攻击,应该对以下字符进行处理:|、&、;、¥、%、@、'、"等
  4. 防止sql的攻击,应对以下字符进行处理:|、&、;、¥、%、@、'、"等
  5. 使用正则表达式检查输入格式的规则约束
  6. 参数,在get里面需要加密,post更安全
  7. 关键数据不要存储客服端,必须存储需要加密
  8. 异常数据返回值需要处理,在前端catch
  9. 客户端指定域,remote配置属性

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KinHKin(五年前端)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值