目的:
合理javascript开发风格。使别人轻松的阅读你的代码,并使代码更优雅。
1、空白
永远都不要混用空格和Tab。
2、美化语法
a、小括号, 花括号, 换行
if/else/for/while/try 通常都有小括号、花括号和多行
b、一元操作符(如 delete, typeof, void)或在某些关键词(如 return, throw, case, new) 之后, 不要使用括号;
3、赋值, 声明, 函数
a、同类型变量组合在一起。
b、函数内变量声明,总在作用域顶部
c、函数声明必须有意义(构造器首字母大写)
d、变量声明规范:
e、普通变量统一使用驼峰形式;
f、常量使用全部大写, 多个单词以下划线分隔
g、私有变量, 属性和方法, 名字以下划线开头
4、引号
不要混合使用单引和双引,选择一种。
5、分号
建议补全所有分号(压缩)
6、==和===
尽量少的使用==(会转换类型后,在匹配),性能考虑
7、For in循环
for in只用于遍历对象
8、Array和Object
使用字面量,尽量避免构造函数
9、修改原生方法
避免修改原生方法,防止造成不必要的问题
10、Window
可以用个this代替window,在某些环境下window不代表全局对象
11、闭包
使用需小心内存泄露
闭包保留了一个指向它封闭作用域的指针, 所以, 在给 DOM 元素附加闭包时, 很可能会产生循环引用, 进一步导致内存泄漏.
12、Eval
只在解析json时使用eval,注意高版本浏览器可以使用JSON.parse。
13、With
放弃使用,会改变作用域
14、This赋给变量
15、编写模块时的编码风格
a、在模块内部return {}里暴露执行公共接口
b、new A()在模块内部解决,不要暴露出来
16、命名
原则:有意义的命名,浅显易懂
a、私有变量, 属性和方法, 名字以下划线开头
b、保护变量, 属性和方法, 名字同普通变量名
c、常量使用大写
d、为全局变量使用命名空间
17、注释
a、单行注释放于代码上方为首选
b、多行也可以
c、行末注释应被避免!
d、JSDoc 的方式也不错,但需要比较多的时间