写在前面
新司机近来读完《编写可保护的JavaScript》,学到不少东西。书分为编程作风、编程实践、自动化三个部份。个中编程作风是你的代码花样商定,一致的花样不单单议有利于团队,也有助于提高新司机的代码质量和顺序的可保护性。编程作风并非相对的,每一个人或团队都有本身的编程作风,但晓得哪些地方须要注重的话,照样有助于新司机完成代码作风的改变。
第1章 基础的花样化
1.1 缩进:制表符一致tab缩进或空格缩进,不能混用
1.2 语句末端不省略分号
// 毛病的例子
var x = 5
(function(){
alert("不要省略分号");
})();
1.3 单行长度:80字符以内,长字符用“+”支解
1.4 拆分换行:两个制表符缩进,打断点在相符后
1.5 空行,增加空白行辨别代码块
每一个流程掌握语句(if,while,for…)之前
在要领定义之间
要领中局部变量和第一条语句之前
多行或单行诠释之前
要领内逻辑片断之间
1.6 定名:
变量和函数,恪守驼峰大小写定名法,变量前缀为名词,函数前缀为动词,罕见商定:can/has/is返回一个布尔值
常量:运用大写字母和下划线来定名
组织函数:首字母大写的驼峰定名法
var setValue = function(){},
getValue = function(){},
isEmpty = false,
CONST_VALUE, // 常量
ConstructFunction; // 组织函数
1.7 直接量:
字符串:一致运用双引号,多行字符串由『+』衔接
null运用场景:将它看成占位符
初始化可以赋值对象的变量
与一个已初始化的变量比较
当函数的参数希冀是对象时,用作参数传入
返回值希冀是对象时,用作返回值
null不适合场景:不必null检测是不是传入参数
禁用undefined
对象直接量初试化数组或对象
var arr = [1, 2, 3, 4],
obj = {key1: value1, key2: value2}
第2章 诠释
2.1 单行诠释:
用来诠释下一行代码,诠释前有一个空行,缩进与下一行一致
代码尾部诠释,代码与诠释间至少有一个缩进,凌驾字符限制则应放在代码上方
2.2 多行诠释:
诠释前有一个空行,缩进与下一行一致
2.3 诠释的运用:代码不够清楚时增加诠释
难以明白的代码
可以被误认为毛病的代码
浏览器特征hack
文档诠释:为以下内容增加诠释,一切要领的功用、希冀参数和返回值、组织函数自定义范例和希冀参数
第3章 语句和表达式
3.1 花括号对齐体式格局:左括号放在第一句末端,右括号放在代码后一行
3.2 括号语句距离:左括号之前,右括号以后增加空格
3.3 switch不遗漏break
3.4 防止运用with
3.5 for中防止运用continue
3.6 for-in运用 hasOwnProperty()要领遍历实例属性,for-in用来遍历对象,不要用来遍历数组
第4章 变量、函数和运算符
4.1 变量声明:将局部变量集合放在函数内部第一条,var合并为一个,初始化独有一行放前面,没初始值的放在背面。
var node1 = null,
node2 = null,
msg = "",
i, len;
4.2 函数声明:先声明再运用,函数声明不应当出现在流程掌握语句块以内。
// 毛病实例,函数提拔使顺序不会像设想中的那样运转
if(document.getElementsByClassName("cls")){
function getClass(){ // someCode }
} else {
function getClass(){ // someCode }
}
// 函数提拔后,可以看成是
function getClass(){ /* someCode */ }
function getClass(){ /* someCode */ }
if(document.getElementsByClassName("cls")){
} else {
}
4.3 函数挪用:函数名与括号间不加空格
4.4 匿名函数马上挪用:运用括号包裹起来,或增加诠释
4.5 严厉形式:在函数体内运用,而不要在全局作用域运用
4.6 相称:应当运用 === 和 !== ,可以防止强迫范例转换,制止直接运用原始范例