Google JavaScript风格攻略

批改版别 2.28
原文:http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml

Aaron Whyte
Bob Jervis
Dan Pupius
Eric Arvidsson
Fritz Schneider
Robby Walker

每个风格点都有一个打开/收起按钮以便你能够得到更多的信息:. 你能够将悉数打开或收起:

悉数打开/悉数收起
内容树

布景

JavaScript是一门客户端脚本言语,Google常常用它来晒优胜,本文档列出了一些在做JS项目时需求留意的当地。都是高富帅收拾的,还望各位屌丝们有时刻都好好看看多学学,别对这个国际太消极了!(译者注:所谓的客户端呢便是浏览器或本地软件环境,市面上一切的浏览器都支撑JS,JS开展到现在一起WEB端再进军移动互联网后,信任在一段时刻内都是不可被简略替代的言语,所以有爱好的同学们能够多重视一下)

JavaScript言语标准

变量(var)

每个变量声明都要加上var关键字噢。

常量

常量命名用相似NAMES_LIKE_THIS这样的办法。没事干了能够用@const来符号它是常量,但永久不要用const关键字来进行常量声明。

分号

每一句子的完毕都要加上分号噢。

嵌套函数

能够运用,木有问题。

块内函数声明

呀咩嗲。

反常处理

支撑合理运用。

自界说反常

支撑合理运用。

标准特性

总是优胜于非标准特性之上。

根本包装类型

自动 new 根本包装类型(Boolean/Number/String)的人儿永久也成不了高富帅!

多级原型结构

不是怎样引荐运用。

办法界说

Foo.prototype.bar = function() { ... };

闭包

上古之大杀器,顺则飞龙在天,滥则亢龙有悔。

eval()

只用于反序列化。(反序列化的意思是从字节省中重构目标,这儿指的应该是JSON字符串重构成目标,或是履行服务器回来的JS句子)

with() {}

别用。

this

仅在结构函数,办法,闭包中去运用它。

for-in 循环

只在 object/map/hash 要遍历键值的时分运用。

相关数组

永久不要用 Array 去做 map/hash/associative 要做的工作。

多行字符串字面量

不要!

Array和Object字面量

引荐运用。

批改内置目标的原型

别这样做。

IE下的条件注释

别用。

JavaScript风格标准

命名

一般,运用相似于 functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis, EnumNamesLikeThis, methodNamesLikeThis, 和 SYMBOLIC_CONSTANTS_LIKE_THIS 这样的命名办法(驼峰式)

自界说 toString() 办法

应该总是成功调用,无副效果。

推迟初始化

能够。

明晰效果域

一直需求明晰。

格局化

一两句话说不明白,打开了具体评论

括号

只在需求的时分运用。

字符串

单引号(')比双引号(")更好。

可见性(私有和受维护的字段)

鼓舞运用JSDoc中的 @private 和 @protected 
进行标示。

JavaScript类型

强烈主张运用编译器。

注释

运用 JSDoc

内部类和枚举

内部类和枚举的界说应和尖端类放在同一文件内。
只需求声明尖端类。

编译紧缩

引荐运用。

提示和技巧

JavaScript 习习更健康。

吐槽部分

坚持一起准则

假如你要修改,先花几分钟看看它的风格,假如它这么做,那你也应该这么做。

风格一起了,就有了一个一起思想的环境,参与者就能够专心的看你要说什么,而不是先想你是在说哪星球的言语。 尽管咱们在这儿提出一起款式规矩,但就仅仅想让咱们都知晓并学习而对自己的风格进行批改。 当然,坚持自己独有的风格也是很重要的。balabala……

批改版别 2.28

译者:chajn
新浪微博:@chajn
于 2012-05-18
那个苦逼的下午
特别感谢@教主 @三水清 @不晓得V给予的支撑