1.Naming Project
1.1【强制】项目命名
1)物业合伙人
property_partner
2)数据可视化
data_visual
1.2【强制】目录名
1.images(存放图片文件);
2.styles(存放css文件);
3.components(存放组件文件);
1.3【强制】JavaScript文件命名
1.4【强制】CSS文件命名
1.5【强制】HTML文件命名
2.HTML
2.1【强制】语法
1)使用四个空格的soft tabs —这是保证代码在各种环境下显示一致的唯一方式。
2)在属性上,使用双引号,不要使用单引号。
3)不要忽略可选的关闭标签(例如,</li>和</body>)。
<!DOCTYPE html>
<html>
<head>
<title>Page title</title>
</head>
<body>
<img src="images/company-logo.png" alt="Company">
<h1 class="hello-world">Hello, world!</h1>
</body>
</html>复制代码
2.2【强制】HTML文件中id的命名
1)页面结构id命名
2)导航类id命名
导航:nav
3)功能类id命名
2.3【强制】HTML5 doctype
<!DOCTYPE html>
<html>
<head>
</head>
</html>复制代码
2.4【强制】引入CSS和JavaScript
<!-- External CSS -->
<link rel="stylesheet" href="code-guide.css">
<!-- In-document CSS -->
<style>
/* ... */
</style>
<!-- JavaScript -->
<script src="code-guide.js"></script>复制代码
2.5【推荐】减少标签数量
<!-- Not so great -->
<span class="avatar">
<img src="...">
</span>
<!-- Better -->
<img class="avatar" src="...">复制代码
2.6【推荐】使用语义化标签
3.CSS
3.1【强制】语法
1)使用四个空格的soft tabs —这是保证代码在各种环境下显示一致的唯一方式。
2)为了代码的易读性,在每个声明的左括号前增加一个空格。
3)尽可能使用短的十六进制数值,例如使用#fff替代#ffffff。
4)不要为0指明单位,比如使用margin: 0;而不是margin: 0px;。
/* Bad CSS */
.selector,.selector-secondary,.selector[type=text] {
padding: 15px;
margin: 0px 0px 15px;
background-color: rgba(0, 0, 0, 0.5);
box-shadow: 0 1px 2px #CCC, inset 0 1px 0 #FFFFFF
}
/* Good CSS */
.selector, .selector-secondary, .selector[type="text"] {
padding: 15px;
margin-bottom: 15px;
background-color: rgba(0,0,0,.5);
box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff;
}复制代码
3.2【强制】CSS类名命名规范
1.如果多人协作,可以考虑使用不同的前缀予以区分:内容fl-content;
2.命名技巧:
(1)
.red { color: red; }
.f60 { color: #f60; }
.ff8600 { color: #ff8600; }复制代码
(2)字体大小,直接使用”font+字体大小”作为名称,如
.font12px { font-size: 12px; }
.font9pt {font-size: 9pt; }复制代码
(3)对齐样式,使用对齐目标的英文名称,如
.left { float:left; }
.bottom { float:bottom; }复制代码
(4)
.bar-news { }
.bar-product { }复制代码
3.3【强制】属性简写
· padding
· margin
· font
· background
· border
· border-radius复制代码
/* Bad example */
.element {
margin: 0 0 10px;
}
/* Good example */
.element {
margin-bottom: 10px;
}复制代码
3.5【推荐】选择器
1)使用classes而不是通用元素标签来优化渲染性能。
2)避免在经常出现的组件中使用一些属性选择器,(例如,[class^="..."])。浏览器性能会受到这些情况的影响。
3)减少选择器的长度,每个组合选择器选择器的条目应该尽量控制在3个以内。
4)只在必要的情况下使用后代选择器(例如,没有使用带前缀classes的情况)。
/* Bad example */
span { ... }
.page-container #stream .stream-item .tweet .tweet-header .username { ... }
.avatar { ... }
/* Good example */
.avatar { ... }
.tweet-header .username { ... }
.tweet .avatar { ... }复制代码
3.6【推荐】杂项
1)不允许有空的规则
2)去掉小数点前面的0
3)元素选择器用小写字母
4)尽量少用'*'选择器
5)选择器不要超过4层
4.JavaScript
4.1【强制】缩进,分号,单行长度
1)一律使用4个空格
2)语句之后一律以分号结束, 不可以省略
3)单行长度,理论上不要超过80列,不过如果编辑器开启soft wrap的话可以不考虑单行长度
4.2【强制】变量命名,声明
1)标准变量采用驼峰标识,使用let声明。
2)常量采用大写字母,下划线连接的方式,使用const声明。
3)构造函数,大写第一个字母。
4)字符串使用单引号。
5)在函数作用域顶部声明变量。
let thisIsMyName;
const MAX_COUNT = 10;
function Person(name) {
this.name = name
}复制代码
4.3【强制】对象,数组声明
*统一使用字面量声明
// Bad
var team = new Team();
team.title = "AlloyTeam";
team.count = 25;
// Good semi colon 采用 Followed by space 的形式
var team = {
title: "AlloyTeam",
count: 25
};
// Bad
var colors = new Array("red", "green", "blue");
var numbers = new Array(1, 2, 3, 4);
// Good
var colors = [ "red", "green", "blue" ];
var numbers = [ 1, 2, 3, 4 ];复制代码
4.4【推荐】注释规范
1)双斜线后,必须跟注释内容保留一个空格;
2)可独占一行,前边不许有空行,缩进与下一行代码保持一致;
3)可位于一个代码行的末尾,注意这里的格式。
// Good
if (condition) {
// if you made it here, then all security checks passed
allowed();
}
var zhangsan = "zhangsan"; // 双斜线距离分号四个空格,双斜线后始终保留一个空格复制代码
1)最少三行,格式如下;
2)前边留空一行。
/*
*注释内容与星标前保留一个空格
*/复制代码
4.5【强制】undefined
1) 永远不要直接使用undefined进行变量判断,使用typeof和字符串’undefined'对变量进行判断。
// Bad
if(person === undefind) {
doSomething();
}
// Good
if(typeof person === 'undefined') {
doSomething();
doSomethingElse();
}复制代码
4.7【强制】if else花括号前后留有空格
if(condition) {
doSomething();
} else {
doSomethingElse();
}复制代码
4.8【强制】条件表达式和等号
1)
2)使用快捷方式:
// Bad
if(name === '') {
doSomething();
}
// Good
if(name) {
doSomething();
doSomethingElse();
}
// Bad
if(name.length > 0) {
doSomething();
}
// Good
if(name.length) {
doSomething();
doSomethingElse();
}复制代码
4.9【推荐】杂项
1)不要混用tab和空格。
2)对上下文this的引用只能使用’_this', 'that', ‘self’其中一个来命名。
3)行尾不要有空白字符。
4)不允许有空的代码块。
5)语句结束后一定要加分号;。
6)不希望其他人修改的函数在名称前加下划线_。
7)花括号前必须有一个空格。
8)使用函数参数默认值。
// Bad
function test(arg) {
let val = arg || {}
}
// Good
function test(arg = {}) {
let val = arg
}复制代码