前端代码规范

命名规则

项目命名

全部采用小写方式, 以下划线分隔。

例:my_project_name

目录命名

参照项目命名规则;

有复数结构时,要采用复数命名法。

例:scripts, styles, images, data_models

JS文件命名

参照项目命名规则。

例:account_model.js

CSS, SCSS文件命名

参照项目命名规则。

例:retina_sprites.scss

HTML文件命名

参照项目命名规则。

例:error_report.html

HTML

  • 缩进使用soft tab(4个空格);
  • 嵌套的节点应该缩进;
  • 在属性上,使用双引号,不要使用单引号;
  • 属性名全小写,用中划线做分隔符;

减少标签数量

在编写HTML代码时,需要尽量避免多余的父节点;

很多时候,需要通过迭代和重构来使HTML变得更少。

1
2
3
4
5
6
<!-- Not well -->
<span class="avatar">
<img src="...">
</span>
<!-- Better -->
<img class="avatar" src="...">

CSS, SCSS

命名

  • 类名使用小写字母,以中划线分隔
  • id采用驼峰式命名
  • scss中的变量、函数、混合、placeholder采用驼峰式命名
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /* class */
    .element-content {
    }

    /* id */
    #myDialog {
    }

    /* 变量 */
    $colorBlack: #000;

颜色

颜色16进制用小写字母;
颜色16进制尽量用简写。

1
2
3
4
5
6
7
8
9
10
/* not good */
.element {
color: #ABCDEF;
background-color: #000000;
}
/* good */
.element {
color: #abcdef;
background-color: #000;
}

杂项

不允许有空的规则;
元素选择器用小写字母;
用 border: 0; 代替 border: none;;
选择器不要超过4层(在scss中如果超过4层应该考虑用嵌套的方式来写);
尽量少用’ * ‘选择器。

1
2
3
4
5
6
7
8
9
10
/* not good */
.element {}
/* not good */
LI {
...
}
/* good */
li {
...
}

JavaScript

引号

最外层统一使用单引号。

1
2
3
4
5
// not good
var x = "test";
// good
var y = 'foo',
z = '<div id="test"></div>';

变量命名

  • 标准变量采用驼峰式命名(除了对象的属性外,主要是考虑到cgi返回的数据)
  • ‘ID’在变量名中全大写
  • ‘URL’在变量名中全大写
  • ‘Android’在变量名中大写第一个字母
    • ‘iOS’在变量名中小写第一个,大写后两个字母
    • 常量全大写,用下划线连接
    • 构造函数,大写第一个字母
    • jquery对象必须以’$’开头命名
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      var thisIsMyName;
      var goodID;
      var reportURL;
      var AndroidVersion;
      var iOSVersion;
      var MAX_COUNT = 10;
      function Person(name) {
      this.name = name;
      }
      // not good
      var body = $('body');
      // good
      var $body = $('body');

函数

无论是函数声明还是函数表达式,’(‘前不要空格,但’{‘前一定要有空格;
函数调用括号前不需要空格;
立即执行函数外必须包一层括号;
不要给inline function命名;
参数之间用’, ‘分隔,注意逗号后有一个空格。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// not good
function doSomething(item){
// do something
}

// good
function doSomething(item) {
// do something
}

// not good
doSomething (item);

// good
doSomething(item);

// not good
function doSomething (a,b,c) {
// do something
};

// good
function doSomething (a, b, c) {
// do something
};