第一部分 编程风格
“程序是写给人读的,只是偶尔让计算机执行一下。” ---- Donald Knut
第1章 基本的格式化
1.1 缩进层级
- 使用制表符进行缩进 每一个缩进层级都用制表符表示。
- 使用空格符进行缩进 每个缩进层级由多个空格字符组成。 推荐使用4个空格字符为一个缩进层级。很多文本编辑器都默认将缩进设置为4个空格,你可以在编辑器中配置敲入Tab键时插入4个空格。
1.2 语句结尾
ASI会自动寻找代码中应当使用分号单实际没有分号的位置,并插入分号。大多数场景下ASI都会正确插入分号,不会产生错误。但ASI的分号插入规则非常复杂且很难记住,因此推荐不要省略分号。
1.3 行的长度
推荐将行的长度限定在80个字符。
1.4 换行
推荐在运算符后换行,下一行会增加两个层级的缩进。
1.5 空行
- 在方法之前
- 在方法中的局部变量和第一条语句之间
- 在多行或单行注释之前
- 在方法内的逻辑片段之间
1.6 命名
驼峰命名法
1.6.1 变量和函数
变量名应当总是遵守驼峰命名法,并且命名前缀应当是名词。以名词作为前缀可以让变量和函数区分开来,因为函数名前缀应当是动词。
1.6.2 常量
推荐全名大写
1.6.3 构造函数
大驼峰命名法
1.7 直接量
1.7.1 字符串
可以用双括号或单括号括起来
1.7.2 数字
整数和浮点数存储为相同的数据类型。省略小数部分和省略整数部分的写法,容易引起歧义。
1.7.3 null
- 用来初始化一个变量,这个变量可能赋值为一个对象
- 用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象
- 当函数的参数期望是对象时,用作参数传入
- 当函数的返回值期望是对象时,用作返回值传出
下面这些场景不应当使用null:
- 不要使用null来检测是否传入了某个参数
- 不要用null来检测一个未初始化的变量
1.7.4 undefined
没有被初始化的变量都有一个初始值,即undefined,表示这个变量等待被赋值。 通过禁止使用特殊值undefined,可以有效地确保只在一种情况下typeof才会返回undefined:当变量未声明时。
1.7.5 对象直接量
在直接量中直接写出所有属性。
1.7.6 数组直接量
数组直接量是定义数组最简洁的一种方式。