编写可维护的JavaScript-随笔(一)
一、基本的格式化
1、 缩进层级
a) 制表符缩进
i. 好处:制表符和缩进层级是一对一的关系是符合逻辑的,文本编辑器可以配置制表符的展示长度,可以随意调节
ii. 坏处:不同系统相同编辑器打开文件时看到的是不相同的缩进
b) 空格符缩进:基本分为2空格、4空格、8空格
i. 好处:在不同的系统和编辑器中展示是相同的,编辑器可以配置按tab插入几个空格
ii. 缺点:对于没有可配置的编辑器的开发者书写代码的方式很原始
2、 语句结尾:js要么独占一行,要么以分号结尾
a) Js有自动分号插入机制(ASI),这种机制可以帮助减少代码错误,在没有分号的时候自动插入,
b) 但是ASI的插入分号的规则非常复杂并且难记所以推荐不省略分号。
3、 行的长度
a) 一行的代码太长的话会出现滚动条,阅读代码的时候很别扭
b) 其他编程语言中都有限制每行的字符的,但是js没有,所以js为了JSlint规范中指定一行的长度为80字符
4、 换行:
a) 当一行的长度超过80字符的时候需要进行换行
b) 下一行会增加两个层级的缩进
c) 在运算符后换行(逗号是一个运算符)
d) 例外:当变量赋值时第二行的位置应该与赋值运算符的位置保持对齐
5、 空行
a) 两段代码的语义不相关时应该使用空行隔开
b) 方法之间
c) 方法中的局部变量和第一条语句之间
d) 多行或者单行注释之前
e) 方法中的逻辑片段之间插入空行,提高可读性
6、 命名
a) JavaScript的核心ECMAscript遵照了驼峰命名法,小写字母开始,后边每个单词首字母大写
b) 变量名前缀使用名词,函数名前缀使用动词
c) 命名长度尽可能短并抓住要点
d) 构造函数以大写字母开头,用来区分变量和普通函数
7、 直接量
a) 字符串:创建多行字符串时使用+将字符串分成多个进行拼接,而不是使用换行符
b) 数值:为了避免歧义不要省略小数点之前或之后的数字,避免使用八进制直接量
c) 对象:第一行左花括号,每个属性名值对独占行并保持一个缩进,右花括号独占一行
d) 数组:使用方括号将数组元素初始值括起来,替代使用构造函数方法创建数组