如何编写高质量的Javascript代码(12)
来源:rockux 发布时间:2011-03-07 16:04:00
命名规范
可以提高代码移植性和可维护性的一个方面是命名规范。也就是说,在取变量名的时候总是采取一贯的做法。
无论采用什么样的命名规范,其实都不是很重要,重要的是确定下来这个规范,然后遵守它。
构造函数首字母大写
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。


猜你喜欢
- 前言本篇来学习在pytest中使用yaml编写测试用例项目结构conftest.py只需在 conftest.py 即可实现使用yaml编写
- 一个例子: print("Loading vgg19 weights...")vgg_mode
- 与事件循环进行交互,最基本的方式就是任务,任务封装了协程和自动跟踪它的状态。任务是Future类的子类,所以其它协程可以等待任务完成,或当这
- 在vue中已经不像jq那样直接操作dom了,如果要指向当前选中项时,就不能再用jq的思路来做了,方法如下:当指向一个状态的时候,只让指向的状
- 一:re.search():search返回的是查找结果的对象,可以使用group()或groups()方法得到匹配成功的字符串。①grou
- 目录0. 前言1. ipaddress模块介绍1.1 IP主机地址1.2 定义网络1.3 主机接口1.4 检查address/network
- hasattr()函数hasattr()函数用于判断是否包含对应的属性语法:hasattr(object,name)参数:object--对
- mysql数据库开机报错: InnoDB: The log sequence number in ibdata files does not
- @property作用:python的@property是python的一种装饰器,是用来修饰方法的。我们可以使用@property装饰器来
- 开始第一篇。老规矩,先无聊的谈论天气一类的话题。十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡。话说两年前也是在国庆假期
- 查看数据库状态:service mysqld status 启动数据库:service mysqld start&
- 本文实例讲述了python实现linux下使用xcopy的方法。分享给大家供大家参考。具体如下:这个python函数模仿windows下的x
- 你有多少次陷入不得不更改别人代码的境地?如果你是一个开发团队的一员,那么你遇到上述境地的次数比你想要的还要多。然而,Python中有一个整洁
- 什么是组件:组件是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义的元素,Vue.js的
- 计算年、月、日需要安装组件包pip install python-dateutil当前日期时间import datetimeprint da
- 比如:import linecacheprint linecache.getline('2.1_open.py&
- 最近,我在做网页的时候,经理老是反应网页中一些栏目中没有背景图片。我说:背景图片有的,你刷新看看。但是他说:我可以刷新看看,但是你不能老是让
- 最近脱离了googlecolab想使用本地的anaconda进行机器学习课题的演练,在安装tensorflow时报错 : Unsatisfi
- 面试mysqldba的时候遇到一个题:描述msyql replication 机制的实现原理,如何在不停掉mysql主库的情况下,恢复数据不
- 本文主要用python实现了对网站的模拟登录。通过自己构造post数据来用Python实现登录过程。当你要模拟登录一个网站时,首先要搞清楚网