if (wl && wl.length) {
for (i = 0, l = wl.length; i < l; i++) {
p = wl[i];
type = Y.Lang.type(r[p]);
if (s.hasOwnProperty(p)) {
if (merge && type == 'object') {
Y.mix(r[p], s[p]);
} else if (ov || !(p in r)) {
r[p] = s[p];
}
}
}
}
var prop;
for (prop in object) {
if (object.hasOwnProperty(prop)) {
console.log("Property name is " + prop);
console.log("Property value is " + object[prop]);
}
}
四丶变量、函数和运算符
变量声明
总是将局部变量的定义作为函数内第一条语句,即声明提前
将 var 语句合并为一个语句
每个变量的初始化独占一行
对于没有初始值的变量,应当出现在 var 语句的尾部
函数声明
先声明 JavaScript 函数然后使用函数
函数内部的局部函数应当紧接着变量声明之后声明
函数声明不应当出现在语句块之内
立即调用的函数
为了让立即执行的函数能够被一眼看出来,可以将函数用一对圆括号包裹起来
var value = (function() {
// 函数体
return {
message: "Hi"
}
} ());
HTML
一丶语法
<br>
或<img>
)</li>
或</body>
)二丶注释
三丶文档
HTML5 DOCTYPE
在每个 HTML 页面开头使用
DOCTYPE
来启用标准模式,使每个浏览器尽可能一致地展现。文档类型声明之前,不允许出现任何非空字符。虽然 DOCTYPE 不区分大小写,但是按照惯例,DOCTYPE 大写。语言属性
根据 HTML5 规范,强烈建议为
<html>
根元素指定 lang 属性,从而为文档设置正确的语言。这将有助于语音合成工具确定其所应该采用的发音,有助于翻译工具确定其翻译时所应遵守的规则等等。IE 兼容模式
IE 支持通过特定的
<meta>
标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的模式。字符编码
通过声明一个明确的字符编码,让浏览器轻松、快速地确定适合网页内容的渲染方式。
引入 CSS 和 JavaScript
根据 HTML5 规范,在引入 CSS 和 JavaScript 文件时一般不需要指定
type
属性,因为text/css
和text/javascript
分别是它们的默认值。尽量避免内部样式表。尽量将 js 文件放在尾部加载。可以使用IE条件注释的方式兼容IE。四丶标签
语义化标签
比如标题根据重要性用 h*(同一页面只能有一个
h1
), 段落标记用p
, 列表用ul
, 内联元素中不可嵌套块级元素等避免冗余
编写 HTML 代码时,尽量避免多余的父元素。很多时候,这需要迭代和重构来实现。
js 生成的标签
通过 js 生成的标签让内容变得不易查找、编辑,并且降低性能。能避免时尽量避免。
五丶属性
属性顺序
布尔属性
根据 HTML5 规范,布尔型属性可以在声明时不赋值。即元素的布尔型属性如果有值,就是 true,如果没有值,就是 false。
其他规则
<label>
使用 for 属性绑定<input>
。CSS
一丶语法
二、注释
注释方式
文件顶部注释(必需)
三、代码组织
四、选择器
五、命名规范
使用有意义的或通用的 id 和 class 命名:id 和 class 的命名应反映该元素的功能或使用通用名称,而不要用抽象的晦涩的命名。反映元素的使用目的是首选;使用通用名称代表该元素不表特定意义,与其同级元素无异,通常是用于辅助命名;使用功能性或通用的名称可以更适用于文档或模版变化的情况。
六、声明顺序
相关的属性声明应当归为一组,并按照下面的顺序排列:
由于定位(positioning)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。盒模型排在第二位,因为它决定了组件的尺寸和位置。
其他属性只是影响组件的内部(inside)或者是不影响前两组属性,因此排在后面。
七、属性简写
在需要显示地设置所有值的情况下,应当尽量限制使用简写形式的属性声明。常见的滥用简写属性声明的情况如下:
padding
margin
font
background
border
border-radius
大部分情况下,我们不需要为简写形式的属性声明指定所有值。例如,HTML 的 heading 元素只需要设置上、下边距(margin)的值,因此,在必要的时候,只需覆盖这两个值就可以。过度使用简写形式的属性声明会导致代码混乱,并且会对属性值带来不必要的覆盖从而引起意外的副作用。
JavaScript(ES5)
一丶基本的格式化
空行
命名-变量和函数
对于函数和方法命名来说,第一个单词应该是动词,这里有一些使用动词常见的约定:
命名-常量
其他命名
直接量-数字
直接量-null
把 null 当做对象的占位符,在下列场景中应当使用 null:
以下场景不应当使用 null:
二丶注释
单行注释
多行注释
/*
,第二行是以*
开始且和上一行的*
保持左对齐,最后一行是*/
使用注释
三丶语句和表达式
四丶变量、函数和运算符
变量声明
函数声明
立即调用的函数
其他
同样应遵守的其他规范