写在前面:之前硬着头皮参加了java方面的编程规范培训,收货良多,工作半年有余的时候,总算感觉到一丝丝Coding之美,以及造*的乐趣,以至于后面开发新功能的时候,在Coding style方面花了很多时间,但还有一些细节方面,总感觉一直没有统一,比如什么时候该加空行,比如是不是所有的return前面都应该加个空行以及注释的添加等等,才有了对这本书《编写可维护的Javascript》的阅读,还是如之前一样,只收纳了一些自己看本书的时候,还未完全贯彻的style
有待改进的点:在前端自动化的路上,还未曾使用过一些代码检查工具如JSLint,实在low的很,在code review的时候,花了更多的精力在coding style上面,而忽略了code review最重要的逻辑以及实现合理性上,拖延ing。
1.行的长度
java语言的编程规范中规定单行的长度不超过80个字符,文档中代码单行长度不超过70个字符,javascript没有详细的说明,所以暂且也是按照这个java的规范去执行
2. 换行
//好的做法: 在运算符后换行,第二行追加两个缩进
callFunction(document, element, window, true, 123,
nav)
当给变量赋值的时候,第二行的位置应该和赋值运算符的位置保持对齐
var result = something + antherThing + yetAntherThing + somethingElse +
enjoy
3. 空行
在下面这些场景中添加空行是不错的主意
- 在方法之间
- 在方法中的局部变量和第一条语句之间
- 在多行或单行注释之前
- 在方法内的逻辑片段之间插入空行,提高可读性
4. 变量和函数
变量定义使用名字,函数命名使用动词
5.事件处理规则1 -- 隔离应用逻辑
将应用逻辑从所有事件处理程序中抽离出来的做法是一种最佳实践,因为指不定什么时候其他地方就会触发同一段逻辑
6.事件处理规则2 -- 不要分发事件对象
不要将整个event对象作为参数进行传递,你需要确切的知道这个方法使用了哪些信息,这样才能方便的写出测试代码
7.检测对象
检测某个对象最好的方法是使用instanceof运算符,
8.检测数组
使用Array.isArray()检测一个值是否为数组
9.检测属性
判断属性是否存在的最好的方法是使用in运算符,in运算符仅仅会简单的判断属性是否存在,而不会去读属性的值,如果只想检查视力对象的某个属性是否存在,则使用hasOwnProperty()