《编写可维护的JavaScript》读书笔记

179 阅读2分钟

第一部分 编程风格

“程序是写给人读的,只是偶尔让计算机执行一下。” ---- 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 数组直接量

数组直接量是定义数组最简洁的一种方式。