Skip to content

Instantly share code, notes, and snippets.

@Johnqing
Last active December 14, 2015 08:09
Show Gist options
  • Save Johnqing/5055587 to your computer and use it in GitHub Desktop.
Save Johnqing/5055587 to your computer and use it in GitHub Desktop.
合理javascript开发风格。使别人轻松的阅读你的代码,并使代码更优雅。
目的:
合理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 的方式也不错,但需要比较多的时间
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment