前端代码规范,类似google
jade类以及内嵌js
- 缩进为2,除了js声明 如:
 
//html
.form-group
  label.col-sm-2.control-label 主机
    .col-sm-6
      input.form-control(type="text", name="host")
//js
var routeArr = [],
    buttonType = $route.find('button')[0].dataset.type,
    selectCollection = 'custom';
$.each(selectCollection, function(){
  var selectVal = this.value;
  if(!this.value)selectVal = '*';
  routeArr.push(selectVal)
});
通用前端规范
#html规范
- 排版缩进为4
 - 标签属性使用小写
 - 在HTML5规范里并没有严格要求属性值两边加引号。但考虑到一些属性可以接受空白值,为了保持一致性,我们要求所有属性值必须加上引号。
 - 段落分隔符要使用实际对应的 
<p>素,而不是用多个<br>标签。 - 在合适的条件下,充分利用
<dl>(定义列表)和<blockquote>标签。 - 列表中的条目必须总是放置于
<ul>、<ol>或<dl>中,永远不要用一组<div>或<p>来表示。 - 给每个表单里的字段加上 
<label>标签,其中的 for 属性必须和对应的输入字段对应,这样用户就可以点击标签。同理,给标签加上 cursor:pointer; 样式也是明智的做法。 - 多媒体标签向后兼容,记得加上alt属性
 
#CSS规范--(like google)
- 正确使用缩写,例如navigation就可以缩写为nav,而author就不要缩写
 - id与class前不必加上标签类型
 - 属性尽量使用简写形式,如font或background等
 - 0后面不要加上单位
 - 小数前不要加上0
 - url()中不要加入引号,例如@import url(//www.google.com/css/go.css);
 - 16进制尽量使用3位表示
 - 可以为项目加入前缀,例如.adw-help {} /* AdWords */
 - 分词使用“-”,如前例
 - 属性采用字典序申明,包括前缀如moz安排在webkit之前
 
background: fuchsia;
border: 1px solid;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
color: black;
text-align: center;
text-indent: 2em;
- 属性:与值之间用一个空格分开,例如font-weight: bold;
 - 为每个选择符及每个属性申明单独使用一行
 
h1,
h2,
h3 {
  font-weight: normal;
  line-height: 1.2;
}
#Javascript规范
- 变量声明必须使用var
 - 记得使用分号结尾
 - 随意使用嵌套函数
 - 块级域中不用使用函数声明形式(不符合标准),应该这样处理:
 
if (x) {
  var foo = function() {}
}
- 原生类型不要使用包装对象的构造函数来进行声明,但是可以用来进行类型转换如:
 
var x = Boolean(0);
if (x) {
  alert('hi');  // This will never be alerted.
}
typeof Boolean(0) == 'boolean';
typeof new Boolean(0) == 'object';
- 不要使用with
 - for in 不要用在遍历array上,只能用在object上
 - 多行的字符串字面量,应该使用+进行字符串拼接,而不是进行换行
 - array与object创建使用字面量而不是包装构造函数
 - 不要改变内置对象的prototype
 - 私有成员使用前下划线:_person
 - 永远要为项目添加一个命名空间,不要为外部引入的代码再引入自定义的成员,如果必要则应该使用外部代码暴露的api
 - 文件命名统一使用小写”.js”,同时推荐”-“而不是”_”
 - 字符串相对于双引号,推荐使用单引号
 - 留空。总的来说,使用留空应该遵循源远流长的英语阅读惯例。 例如,每个逗号和冒号(以及适用的分号)后面要空一格,但在括号内部的左侧和右侧都不要加空格。另外,大括号应该总是和他们前面的参数出现在同一行。
 
来看看下面的 JavaScript for循环的例子...
##正确
for (var i = 0, j = arr.length; i < j; i++) {
	// Do something.
}
##不正确
for ( var i = 0, j = arr.length; i < j; i++ )
{
	// Do something.
}
##不正确
for(var i=0,j=arr.length;i<j;i++){
	// Do something.
}
</>