JS野生程序员进修指南
2017年5月15日
基本
缩进
4个空格,而不是一个制表符
结尾
分号结尾
行长度
80个字符
换行
符号结尾,第二行追加2单位(8字符)缩进
空行
- 方法之间
- 方法中局部变量和第一条语句之间
- 注释之前
- 逻辑片段之间
命名
- Camel Case
- 变量前缀为名词
- 函数前缀为动词
- 表数量 count, length, size
- 循环体 i, j, k
- 常量使用大写字母,下划线分隔单词
- 构造函数使用Pascal Case
函数名参考
动词 | 含义 |
---|---|
can | 返回布尔值 |
has | 返回布尔值 |
is | 返回布尔值 |
get | 返回非布尔值 |
set | 保存一个值 |
直接量
- 字符串 单引号、双引号皆可
- 数字,不使用八进制;不以小数点结尾
null
- 对象占位符
- 不要 检测是否传入某个参数
- 不要 检测一个未初始化的变量
undefined
未被初始化的变量初始值
对象直接量
1 | //不好的写法 |
数组直接量
1 | //不好的写法 |
注释
单行注释
//something
- 独占一行,解释下一行,注释前留一空行,缩进与下一行保持一致
- 尾部注释与代码保持一单位缩进,不应超过最大长度限制
多行注释
1 | /* |
注释时机
- 难于理解的代码
- 可能被理解错误的代码
- 浏览器兼容性
文档注释
1 | /** |
语句和表达式
基本
1 | //好的写法 |
缩进应对齐
所有块语句都应使用花括号
- if
- for
- while
- do…while…
- try…catch…finally
花括号对齐方式
1 | //好的写法 |
块语句间隔
1 | //好的写法 |
switch
1 | switch(condition) { |
with
禁用
for
避免使用continue
for-in
不应遍历数组
变量、函数和运算符
变量声明
- 注意提升机制
1 | //好的写法 |
函数声明
- 先定义后使用
- 不应在块语句内定义
- 函数名与左括号间无空格
立即调用函数
1 | //好的写法 |
严格模式
- 应在函数体内使用,而非全局
相等
- 应使用 ‘===’, ‘!==’, 而不是 ‘==’, ‘!=’
eval()
- 避免使用 eval(), Function
1
2
3
4
5
6
7
8
9
10
11//不好的写法
var myfunc = new Function("alert('Hi!')");
setTimeout("document.body.style.background='red'", 50);
setInterval("document.title = 'It is now'" + (new Date()), 1000);
//而应使用匿名函数代替
setTimeout(function() {
document.body.style.background='red';
}, 50);
原始包装类型
1 | //不好的写法 |