《编写可维护的JavaScript》——第一章:基本的格式化
检查编程风格的工具:JSLint 和 JSHint
1.1 缩进层级
坚持使用适度的缩进,有助于代码的阅读(区分代码块…)
使用制表符进行缩进
优点
- 制表符与缩进层级之间是一对一的关系
- 可以通过文本编辑器配置制表符的展现长度
缺点:
- 系统对制表符的解释不一样
使用空格进行缩进
在不同的风格指南中,一个缩进层级对应的空格数量也是不定的。
只是,推荐使用4个空格字符为一个缩进层级,这样的视觉展现优于两个空格字符
注意:尽管选择制表符还是选择空格做缩进只是一种个人偏好,但是绝对不要将两者混用。这样会导致文件的格式很糟糕,而且还要做不少清理工作
1.2 语句结尾
JS的语句要么是独占一行,要么以分号结尾。
分析器的自动分号插入机制(ASI)会自动插入分号,所以JS代码省略分号也是可以正常工作的。ASI在大多树场景下都会正确插入分号,但是它的插入规则非常复杂,不建议省略分号,指不定什么时候就会出错。
function getData(){
return
{
name:"FengBuJue"
}
}
//分析器会理解为
function getData(){
return ;
{
name:"FengBuJue"
}
}
1.3 行的长度
如果一行代码太长,编辑窗口都出现了横向滚动条,会很别扭。
很多编辑器规定代码单行长度不超过80个字符,JS也建议如此
1.4 换行
一行代码长度达到单行最大字符限制的时候,需要将一行拆成两行。
通常在运算符后换行,下一行会增加两个层级的缩进
adfadfadfasdfadf “FengBuJue”,“Baizhantang”,
“lihuamao”;
这个规则有个例外:当变量赋值时,第二行的位置应当和赋值运算符的位置保持对齐
a = b + c +
d;
1.5 空行
有时候一段代码的语义和另一段代码不想关,应该使用空行将其分隔,确保语义有关联的代码展现在一起
if(a<b){
for(var i = 0;i<123;i++){
console.log("data"+i);
}
}
if(a<b){
//在这里添加空行
for(var i = 0;i<123;i++){
//在这里添加空行
console.log("data"+i);
}
}
一般空行的添加位置:
- 在方法之间
- 在方法中的局部变量和第一条语句之间
- 在多行或单行注释之前
- 在方法内的逻辑片断之间插入空行,提高可读性
1.6 命名
计算机科学只存在两个难题:缓存失败和命名 ———“Phil Karlton”
JS语言的核心ECMAScript,遵照了驼峰命名。
- 大驼峰:大写字母开始,后续每个单词首字母大写
- 小驼峰:由小写字母开始,后续每个单词首字母大写
匈牙利命名:
名字之前冠以类型标识符前缀。比如sName,表示字符串。当前主流编程规范不推荐这种命名法
1.6.1 变量和函数
- 变量名应总是遵循(小)驼峰命名法。
- 变量名以名词作为前缀。例: var count = 12; 错误:
var getCount = 12 - 函数名以动词作为前缀。例: var getNum = function(){} 错误:
var theName = function(){};