每一层级由4个空格组成,避免使用制表符(Tab)进行缩进。css
每行长度不该该超过80个字符,多于80个字符,应该在运算符后换行,下一行增长两级缩进(8个字符)html
doSomething(argument1,argument2,argument3,argument4, atgument5);
一、字符串应当始终使用双引号且保持一行。
二、特殊值null在如下状况下可用:
(1)用来初始化一个可能被赋值为对象的变量时使用。
(2)用来和一个已经初始化的变量比较,这个变量有多是对象。
(3)当函数的参数指望是对象时,,被用做参数传入。
(4)当函数的返回值指望是对象时,被用做返回值传入。
其他状况避免使用null
三、避免使用特殊值undefined。判断一个变量是否认义应当使用typeof操做符。前端
二元运算符先后必须使用一个空格保持表达式整洁,操做符包括运算符和逻辑运算符。java
//好的写法 var found = (value[i] === item); if(found && (count > 10)){ doSomething(); }
使用括号时,紧接左括号以后和紧接右括号以前不该该有空格。git
结束的右花括号独占一行github
var object = { key1:value1, key2:value2, func:function() { //doSomething }, key3 = value3 };
当对象字面量做为函数参数时,若值是变量,起始花括号应当同函数名在同一行。canvas
doSomething({ key1:value1, key2:value2 });
1.单行注释浏览器
代码行尾单行注释的状况,应该确保代码结尾同注释之间至少一个缩进
单行注释以前要空格安全
if (condition) { //若是代码执行到这里,代表经过了安全检查 allowed(); }
行内注释var result = something + somethingElse; // 行内注释
网络
2.多行注释
每一个多行注释都至少包含以下三行
注释前空行,星号后空格
if (condition) { /* * 若是代码执行到这里 * 说明经过了全部检测 */ allowed(); }
var count = 10, name = "Nicoho", found = false, empty;
function outer(arg1, arg2){ var count = arg1, name = arg2, found = false, empty; function inner(){ //代码 } //调用inner()的代码 }
给变量赋值时,若是右侧是含有比较语句的表达式,须要用圆括号包裹
使用===(严格相等)和!==(严格不相等)替代相等(==)和不等(!=)来避免弱类型转换错误
三元操做符应当仅仅用在条件赋值语句中,而不要做为if语句的替代品
var value = condition ? value1 : value2;
一、简单语句
每行最多只包含一条语句,全部简单的语句以分号(;)结束。
二、复合语句
if (condition) { statements }
毫不容许在if语句中中省略花括号,单行语句一样须要花括号
if (condition) { statements } else if (condition) { statements } else { statements }
for语句的初始化部分不该该有变量声明
var i, len; for (i=0, len=10; i < len; i++){ //代码 }
当使用for-in语句时,记得使用hasOwnProperty()进行双重检查来过滤出对象的成员.
switch (value) { case 1: /*falls through*/ case 2: doSomething(); break; case 3: return true; default: throw new Error ("This shouldn't happen"); }
一、两行空行以下状况使用
二、单行空行以下状况使用
三、空格在以下状况下使用
建议使用 text/html 格式的 HTML。
避免使用XHTML,由于XHTML以及它的属性,好比application/xhtml+xml在浏览器中的应用支持与优化空间都十分有限。<!DOCTYPE html>
一、自闭合的标签无需闭合,如:<input>、<img>、<br>、<meta>、<link>和<hr> 等
不推荐方式:<input type="text" name="antzone"/></input>
推荐的方式:<input type="text" name="antzone"/>
二、可选闭合标签建议闭合,如:<body>、<li>
三、闭合标签必须闭合
缩进使用soft tab(4个空格),嵌套的节点应该缩进;
一、HTML4/XHTML的嵌套规则
(1)内联元素不能嵌套块元素
(2)<p>元素和<h1>~<h6>元素不能嵌套块元素
(3)ul,li/ol,li/dl,dt,dd拥有父子级关系的标签;ul、ol下都只能跟li,dl下只能跟dt.dd
(4)a标签不能嵌套a;
二、HTML5元素嵌套规则
元素的分类再也不是块元素或内联元素这样来分类(其实历来就没有这样分),而是按照以下分类来分:Flow(流式元素)、Heading(标题元素)、Sectioning(章节元素)、Phrasing(段落元素)、Embedded(嵌入元素)、Interactive(交互元素)、Metadata(元数据元素)
使用语义化标签,尽可能少的使用毫无心义的标签,仅仅用于设置样式,语义化的HTML结构,有助于搜索引擎理解,另外一方面多人协做时,能迅速了解开发者意图
页面中的图片、视频和canvas 动画等都要确保有替代的显示内容。
图片文件咱们可采用有意义的备选文本(alt属性规定),视频和音频文件咱们能够为其加上说明文字或字幕。
例如:<img src="antozen.jpg" alt="网络图谱">
尽可能在文档和模板中只包含结构性的HTML;而将全部表现代码,移入样式表中;将全部动做行为,移入脚本之中。
此外,为使得它们之间的联系尽量的小,在文档和模板中也尽可能少地引入样式和脚本文件。
主要规则以下:
(1).页面中尽可能不要引入超过两个样式表,例如main.css和vendor.css。
(2).页面中保证只引入一个js文件(若是有多个文件,将它们合并压缩后引入)。
(3).不要使用内联样式和内部样式。
(4).不要使用表象元素,例如<b>, <u>, <center>, <font>和<b>等。
(5).不使用元素中表象的属性,例如align="center"。
结构的搭建
对元素的操做应添加在JavaScript代码中,而不要在HTML中添加,下面这个例子就是错误的,这样后期难以维护
HTML5规范中 disabled、checked、selected 等属性不用设置值。
若是可能尽可能不写注释,尽量减小文档的体积;若是必需要添加注释,那么就要遵循以下规则:
(1).详尽注释,解释代码解决问题、解决思路、是否为新鲜方案等。
(2).模块注释,github建议不使用模块结束注释。
(3).待办注释
如:<!-- TODO:待办事项 -->
特别说明:注释文本与两端(--)之间要有一个空格。
如何判断网页标签语义是否良好:去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性
语义化标签注意的一些问题:
部分标签的语义:
div 主要用于布局,分割页面的结构;
ul/ol 主要用于无序/有序列表;
dl/dt/dd 当页面中出现第一行为相似标题/简述,而后下面为详细描述的内容时应该使用该标签;
span 没有特殊的意义,能够用做排版的辅助,而后在css中定义span;
h1-h6 标题, 根据重要性依次递减;
h1 最重要的标题;
label 使表单更有亲和力并且能辅助表单排版;
不推荐使用的标签:
font 文字的外观,大小和颜色;
u 文本下划线;
center 居中对齐;
s 删除线;
strike 删除线;
noframes 无视框时的内容;
iframe 定义嵌入视图;
isindex 不建议使用(可搜寻,使用input代替);
dir 目录式列举;
menu 菜单列表;
basefont 定义基本字体;
applet 定义java程序;
frame 定义个别视框;
frameset 视框格式总定义;
1.HTML 属性应当按照如下给出的顺序依次排列,确保代码的易读性。
2.id 和 class
通常项目中class用于css中,id被js用来操做dom且不添加样式,(jq操做class通常不加样式)。
每一个input标签对应的说明文本都须要使用label标签,而且经过为input设置id属性,在label标签中设置“for = someId"来让说明文本和相应的input关联起来