命名规范
可以提高代码移植性和可维护性的一个方面是命名规范。也就是说,在取变量名的时候总是采取一贯的做法。
无论采用什么样的命名规范,其实都不是很重要,重要的是确定下来这个规范,然后遵守它。
构造函数首字母大写
javascript中没有类,但是可以使用new来达到同样的目的。
因为构造函数也是函数,如果能从名字上就能区别它是构造函数还是普通函数,对于开发者是非常有用的。所以将构造函数的首字母大写,普通函数的首字母小写作为提示。这样一眼就能区别。
单词的分隔
当你的变量名或者函数名是由好几个单词构成的时候,如果能顺利区分变量名由那几个单词构成,也是非常不错的体验。这种命名规范成为驼峰式。所谓驼峰式就是以小写字母开始,后面的每个单词第一个字母大写。
对于构造函数第一个字母大写,MyConstructor(),对于普通的函数,就采用驼峰式myFunction(), calculateArea()。
那么变量怎么办呢,有的人使用驼峰式,但是更好的办法是使用下划线来区分。first_name,favorite_bands, 以及 old_company_name。这也可以让你一眼就能区分函数和变量。
其他命名规范
有时候,开发人员也会使用命名规范来替代和弥补一些语言的特性。
例如,在javascript中,并没有提供定义常量的办法(虽然有Number.MAX_VALUE),所以开发人员使用全大写的名称来表示不可更改的常量。var PI = 3.14, MAX_WIDTH = 800。
另外一种规范是使用全局变量名的首字母。这样做可以强化开发者使全局变量最少,并且容易辨认。
另外一种规范是在函数中模拟私有成员。虽然可以在javascript中实现私有变量,但是开发人员为了更加容易区别,所以给他加一个下划线的前缀。例如:
var person = { getName: function () { return this._getFirst() + ' ' + this._getLast(); }, _getFirst: function () { // ... }, _getLast: function () { // ... } };
在这个例子中,getName是一个公有函数,是API的一部分,_getFirst,_getLast本意是私有的。虽然仍然是公有函数,但hi加上了这个前缀,表示在以后的版本中不保证能运行,所以不应该被直接使用。注意在JSLint中不推荐这样做,除非你设置nomen选项为false。
还有其他几种表示私有成员的规范:
- 在末尾使用下划线,比如name_以及getElements_
- 使用一个下划线表示保护成员_protected,两个下划线表示私有成员__private
- 在firefox中,有些不是语言原生的变量,以两个下划线开始,两个下划线结束__proto__以及__parent__
写注释
必须给你的代码写注释,就算它看起来不会被别人接手。有时候,你研究完一个问题,然后你看着代码觉得那是显而易见的,但是过一两周之后回头再看,你也会摸不着头脑的。
当然,也不能过分的注释:每个变量每一行代码都注释。但是通常都需要对函数的功能,参数,返回值写文档,以及一些其他的复杂的逻辑和算法。想想,你的代码的阅读者,只需要读注释就能大体上了解你的代码在做什么需要什么,这比直接读代码理解要快的多。当你有五六行的代码是做一个具体的任务,那么阅读者就可以通过一行代码了解你的目的,然后跳过这些代码。关于注释,没有硬性的比例说是多少代码需要多少注释。有时候,有些代码(比如正则表达式)注释的内容肯定比代码本身多。
写注释是必须遵守的规范,而且要保持注释的更新,一个过时的注释带给人的迷惑还不如不写注释。
原文:http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/
本文链接:http://www.blueidea.com/tech/web/2011/8319.asp
出处:rockux
责任编辑:bluehearts
上一页 如何编写高质量的Javascript代码 [8] 下一页
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|