前端单体编码规范整理

不论是前端还是后台代码,编码规范是尤其重要的,特别是大的项目中,在想开启之初就规范考代码、格式、和要求,会减少很多工作量的,有利于代码的后期维护。

前端单体编码规范整理表
No

范畴

验证内容
1

页面设计

列表标题居中显示。
2页面设计查询数据区域数据展示的样式:
1.不定长中文,不定长英文,不定长中英文,不定长英数字靠左
2.定长,定值数据居中,日期,时间,序号居中
3.金额:靠右
3共通-书写规范性每个文件头是否有正确的注释
4共通-书写规范性每个function是否有正确注释
5共通-书写规范性每个配置文件相关内容是否有注释
6共通-书写规范性每个逻辑块是否有注释
7共通-书写规范性是否有未使用的变量及引用
8共通-书写规范性缩进使用tab,设置tab为4个空格
9HTML-书写规范性标签1:
1.标签名必须使用小写字母,如<p></p>;
2.对于无需自闭合的标签,不允许自闭合,如 input、br、img、hr 等;
3.对 HTML5 中规定闭合标签,不允许省略闭合标签。
10HTML-书写规范性标签2:
1 标签使用必须符合标签嵌套规则,如 div 不得置于 p 中,tbody 必须置于 table 中。
2.HTML 标签的使用应该遵循标签的语义。常见标签语义 p - 段落
h1,h2,h3,h4,h5,h6 - 层级标题
strong,em - 强调
ins - 插入
del - 删除
abbr - 缩写
code - 代码标识
cite - 引述来源作品的标题
q - 引用
blockquote - 一段或长篇引用
ul - 无序列表
ol - 有序列表
dl,dt,dd - 定义表格
11HTML-书写规范性属性:
1.属性名必须使用小写字母;
2.属性值必须用双引号包围;
3.自定义属性建议以 xxx- 为前缀,推荐使用 data- ,如<ol data-ui-type="Select"></ol>。
12HTML-书写规范性编码1:
1.使用 HTML5 的 doctype 来启用标准模式,建议使用大写的 DOCTYPE。
2.页面必须包含 title 标签声明标题。
3.title 必须作为 head 的直接子元素,并紧随 charset 声明之后。
例<head>
<meta charset="UTF-8">
<title>页面标题</title>
</head>
13HTML-书写规范性

编码2:
1.保证 favicon 可访问,(根目录放置 favicon.ico 文件,使用 link 指定 favicon)

如<link rel="shortcut icon" href="path/to/favicon.ico">;

2.若项目为移动端或者为响应式布局,必须指定页面的 viewport。

14HTML-书写规范性引入:
1.引入 CSS 时必须指明 rel="stylesheet",如<link rel="stylesheet" href="page.css">;
2.引入 CSS 和 JavaScript 时可以无须指明 type 属性,(有默认值);
3.在 head 中引入页面需要的所有 CSS 资源,JavaScript 应当放在页面末尾,或采用异步加载。(将 script 放在页面中间将阻断页面的渲染)。
15HTML-书写规范性

图片:
1.禁止 img 的 src 取值为空。延迟加载的图片也要增加默认的 src(src为空会导致页面重加载);

2.避免为 img 添加不必要的 title 属性,(多余的 title 影响看图体验,并且增加了页面尺寸);

3.为重要图片添加 alt 属性;

4.有下载需求的图片采用 img 标签实现,无下载需求的图片采用 CSS 背景图实现。

16HTML-书写规范性表单:
1.有文本标题的控件必须使用 label 标签将其与其标题相关联;
2.使用 button 元素时必须指明 type 属性值;
3.负责主要功能的按钮在 DOM 中的顺序应靠前,(建议如此,具体以设计为准)。
17HTML-书写规范性视频与音频:
1.在支持 HTML5 的浏览器中优先使用 audio 和 video 标签来定义音视频元素;
2.只在必要的时候开启音视频的自动播放;
3. 在 object 标签内部提供指示浏览器不支持该标签的说明,如<object width="100" height="50" data="something.swf">DO NOT SUPPORT THIS TAG</object>。
18CSS-书写规范性样式行长度 每行不得超过 120 个字符,除非单行不可分割。
19CSS-书写规范性命名:
1.class、id必须单词全字母小写,单词间以 - (中划线)分隔;
2.class、id 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名,如 left, right, center, red, black等单词单独出现在命名里;
3.class必须加上相应前缀(避免全局污染),如 g-代表全局样式、m- 代表模块的样式、ui-代表组件的样式等,具体以项目规定为准;
4.单个样式不能允许出现 !important;
5.不允许 class 只用于让 JavaScript 选择某些元素,创建无样式信息的 class,(使用id);
6.元素 id 必须保证页面唯一;
7.同一页面,不同的标签,避免使用相同的 name 与 id(同一标签可使用)。
20CSS-书写规范性当一个 rule 包含多个 selector 时,每个选择器声明必须独占一行。
21CSS-书写规范性属性选择器中的值必须用双引号包围。如input[name="acd"] {……}
22CSS-书写规范性当数值为 0 - 1 之间的小数时,省略整数部分的 0。如 opacity: .8
23CSS-书写规范性url() 函数中的路径不加引号。如 background: url(bg.png);
24CSS-书写规范性长度为 0 时须省略单位。如 padding: 0 5px
25CSS-书写规范性样式代码应独立保存在后缀名为.css的文件中,非特殊情况下不得写行间样式。
26CSS-书写规范性RGB颜色值必须使用十六进制记号形式 #rrggbb。不允许使用 rgb()。
27CSS-书写规范性颜色:
1.RGB颜色值必须使用十六进制记号形式 #aabbcc,不允许使用 rgb();
2.颜色值可以缩写时,必须使用缩写形式;如#fff,#000
3.颜色值不允许使用命名色值;如使用red green等不确定值
4.颜色值都统一使用小写英文字母。
28CSS-书写规范性字体1:
1. font-family 属性中的字体族名称应使用字体的英文 Family Name,其中如有空格,须放置在引号中,严禁使用中文。例 font-family: "Microsoft YaHei";
字体 操作系统 Family Name
宋体 (中易宋体) Windows SimSun
黑体 (中易黑体) Windows SimHei
微软雅黑 Windows Microsoft YaHei
微软正黑 Windows Microsoft JhengHei
华文黑体 Mac/iOS STHeiti
冬青黑体 Mac/iOS Hiragino Sans GB
文泉驿正黑 Linux WenQuanYi Zen Hei
文泉驿微米黑 Linux WenQuanYi Micro Hei
29CSS-书写规范性字体2:
1.font-family 按「西文字体在前、中文字体在后」、「效果佳 (质量高/更能满足需求) 的字体在前、效果一般的字体在后」的顺序编写,最后必须指定一个通用字体族( serif / sans-serif );
例 font-family: Arial, sans-serif;
30CSS-书写规范性字号:
1.需要在 Windows 平台显示的中文内容,其字号应不小于 12px;
2.需要在 Windows 平台显示的中文内容,不要使用除 normal 外的 font-style。
31JS-书写规范性命名:
常见的几种命名:驼峰命名thisIsAnApple 、帕斯卡命名ThisIsAnApple、下划线命名this_is_an_apple、中划线命名this-is-an-apple
1.方法/属性名、变量名、参数名、命名空间、函数名,必须使用驼峰命名;
2.类名、枚举名、构造函数,必须使用帕斯卡命名;
3.常量名、枚举的属性:必须使用全部大写的下划线命名法,如IS_DEBUG_ENABLED;
4.私有(保护)成员(属性、函数等):必须以下划线_开头;
5.boolean类型的应当使用is、has等起头,表示其类型;
6.命名同时还需要关注语义,如 变量名应当使用名词、函数名应当用动宾短语(getAccListData)、类名应当用名词。
32JS-书写规范性JavaScript程序应独立保存在后缀名为.js的文件中。
33JS-书写规范性避免每行超过80个字符。
34JS-书写规范性尽量减少全局变量的使用,不要让局部变量覆盖全局变量。
35JS-书写规范性可以使用共通函数的情况下,是否使用了共通函数。
36JS-书写规范性语句:
1.每一行最多只包含一条语句,把;(分号)放到每条简单语句的结尾处;
2.return 语句
一条有返回值的return语句不要使用( )(括号)来括住返回值。如果返回表达式,则表达式应与return 关键字在同一行,以避免误加分号错误;
3.避免使用continue语句,它很容易使得程序的逻辑过程晦涩难懂;
4.eval是JavaScript中最容易被滥用的方法,避免使用。
37JS-书写规范性ES5语法必须将代码包裹成一个 IIFE(Immediately-Invoked Function Expression),用以创建独立隔绝的定义域,防止全局命名空间被污染。
38JS-书写规范性代码中加入js严格模式‘use strict'
39JS-书写规范性变量声明:使用var或let声明变量,不指定变量将被隐式地声明为全局变量,这将对变量难以控制。
40JS-程序疏通性明智地使用真假判断,if(a == true) 是不同于 if(a) 的,这种判断会通过特殊的操作将其转换为 true 或 false,下列表达式统统返回 false:false, 0, undefined, null, NaN,(空字符串).
41JS-程序疏通性避免在循环中创建函数,在简单的循环语句中加入函数是非常容易形成闭包而带来隐患。
42JS-程序疏通性避免在语句块内声明函数,严格模式下是会报语法错误。
43JS-程序疏通性用数组和对象字面量来代替数组和对象构造器,数组构造器很容易让人在它的参数上犯错。
44JS-程序疏通性三元条件判断(if 的快捷方法),用三元操作符分配或返回语句,避免在复杂的情况下使用。
45JS-程序疏通性字符串统一使用单引号(‘),不使用双引号(“),这在创建 HTML 字符串非常有好处:如
var msg = 'This is some HTML <div class="makes-sense"></div>'.
46JS-程序疏通性不要冗余程序,以下的例子作为参考:
・存在未使用的子程序
・重复初始化
・定义未使用的变量
47JS-逻辑正确性没有奇怪的逻辑(空函数及未处理的分支等)
48JS-逻辑正确性文本输入框字符串长度以两点为基础做限制:1、业务上是否要求;2、数据库字段长度是否满足
49JS-逻辑正确性查询完成后,查询条件应该保留在对应的输入框中
50JS-逻辑正确性是否对查询结果进行了排序。
51JS-逻辑正确性查询区域的共计条数应该为当前查询的所有数据的总条数。而不是当前页面的显示条数
52JS-逻辑正确性查询条件输入框应该去除前后空格后查询