Web前端开发规范
为什么需要 “Web前端开发规范”
规范不是强制性的,对代码的编写和程序的运行不会有致命的问题,但是没有规范会有一系列的问题,比如:
- 缺乏规范,第一个问题就是团队编码风格不一,增加了成员之间代码的阅读成本,加大了团队协作成本和维护成本;
- 随着团队人员的变化(多人开发一个应用,或者应用更换开发人员),如果缺乏规范,项目可能会变得一团糟,甚至失控;
- 即便是个人开发,规范也是需要的,当把项目转给其他人的时候,如果有规范的话,会大大降低阅读成本。
所以,建立一套适合团队的开发规范是很受用的。
Web开发规范分类
一般来说,有以下几类规范:
- 命名规范
- html规范
- css规范
- js规范
命名
驼峰式命名法介绍
Pascal Case 大驼峰式命名法:首字母大写。eg:StudentInfo、UserInfo、ProductInfo Camel Case 小驼峰式命名法:首字母小写。eg:studentInfo、userInfo、productInfo
文件资源命名
文件名不得含有空格 文件名建议只使用小写字母,不使用大写字母。( 为了醒目,某些说明文件的文件名,可以使用大写字母,比如README、LICENSE。 ) 文件名包含多个单词时,单词之间建议使用半角的连词线 ( - ) 分隔。 文件版本,比如min、plugin单词之间建议使用点 ( . ) 分隔。 引入资源使用相对路径,不要指定资源所带的具体协议 ( http:,https: ) ,除非这两者协议都不可用。
不推荐:
<script src="http://cdn.com/foundation-min.js"></script>
<script src="./js/myMain.js"></script>
推荐:
<script src="//cdn.com/foundation.min.js"></script>
<script src="./js/my-main.js"></script>
变量命名
命名方式: 小驼峰式命名方法 命名规范: 类型+对象描述的方式,如果没有明确的类型,就可以使前缀为名词
类型 小写字母 array a boolean b function fn int i object o regular r string s
不推荐
var List = [1,2,3];
var flag = true;
推荐
var aList = [1,2,3];
var bFlag = true;
函数命名
命名方式:小驼峰方式 ( 构造函数使用大驼峰命名法 ) 命名规则:前缀为动词
动词 含义 返回值 can 判断是否可执行某个动作 ( 权限 ) 函数返回一个布尔值 true:可执行;false:不可执行 has 判断是否含有某个值 函数返回一个布尔值 true:含有此值;false:不含有此值 is 判断是否为某个值 函数返回一个布尔值 true:为某个值;false:不为某个值 get 获取某个值 函数返回一个非布尔值 set 设置某个值 无返回值、返回是否设置成功或者返回链式对象
推荐
//是否可阅读
function canRead() {
return true;
}
//获取姓名
function getName {
return this.name;
}
常量命名
命名方法:全部大写 命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词
推荐
var MAX_COUNT = 10;
var URL = 'http://www.baidu.com';
类的命名
公共属性和方法:同变量命名方式 私有属性和方法:前缀为下划线(_)后面跟公共属性和方法一样的命名方式
function Student(name) {
var _name = name; // 私有成员
// 公共方法
this.getName = function() {
return _name;
}
// 公共方式
this.setName = function(value) {
_name = value;
}
}
var st = new Student('tom');
st.setName('jerry');
console.log(st.getName()); // => jerry:输出_name私有变量的值
注释规范
- 单行注释(//)
- 单独一行://(双斜线)与注释文字之间保留一个空格 在代码后面添加注释://(双斜线)与代码之间保留一个空格,并且//(双斜线)与注释文字之间保留一个空格。
- 注释代码://(双斜线)与代码之间保留一个空格。
// 调用了一个函数;1)单独在一行
setTitle();
var maxCount = 10; // 设置最大量;2)在代码后面注释
// setName(); // 3)注释代码
多行注释( /* 注释说明 */)
若开始(/* 和结束 / )都在一行,推荐采用单行注释 若至少三行注释时,第一行为/,最后行为/,其他行以开始,并且注释文字与*保留一个空格。
/**
* DYTT 电影天堂
* https://github.com/XboxYan/DYTT
*
* @XboxYan
* @yanwenbin1991@live.com
*/
函数(方法)注释
函数(方法)注释也是多行注释的一种,但是包含了特殊的注释要求
/**
* 函数说明
* @关键字
*/
HTML规范
文档规范
HTML5的文档类型声明:<!DOCTYPE html>
- DOCTYPE标签是一种标准通用标记语言的文档类型声明,它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档。
- 使用文档声明类型的作用是为了防止开启浏览器的怪异模式。
- 没有DOCTYPE文档类型声明会开启浏览器的怪异模式,浏览器会按照自己的解析方式渲染页面,在不同的浏览器下面会有不同的样式。
- 如果你的页面添加了那么,那么就等同于开启了标准模式。浏览器会按照W3C标准解析渲染页面。
脚本加载
说到js和css的位置,大家应该都知道js放在下面,css放在上面。但是,如果你的项目只需要兼容ie10+或者只是在移动端访问,那么可以使用HTML5的新属性async,将脚本文件放在< head >内
<!--老旧浏览器(IE9-)-->
<html>
<head>
<link rel="stylesheet"href="main.css">
</head>
<body>
<!-- body goes here -->
<script src="main.js"></script>
</body>
</html>
<!--现代浏览器-->
<html>
<head>
<link rel="stylesheet"href="main.css">
<script src="main.js"async></script>
</head>
<body>
<!-- body goes here -->
</body>
</html>
md5-2c91b61223a7b9eaef80ff9e5a7ad2f6
<img src="./logo.png" alt="logo" >
md5-7fa1702b20495493237c9650759d9e14
<!-- That's clean markup! -->
<span class="text-box">
See the square next to me?
</span>
<style>
/* We use a :before pseudo element to solve the design problem of placing a colored square infrontofthetext content */
.text-box:before {
content: "";
display: inline-block;
width: 1rem;
height: 1rem;
background-color: red;
}
</style>
文档信息
版权声明:可自由转载(请注明转载出处)-非商用-非衍生
发表时间:2019年4月2日 11:10