浅谈JavaScript编程语言的编码规范(2)

作者:王丹丹 来源:IBM 时间:2010-08-18 12:08:00 

注释

代码中的注释很重要,自然也是毋庸置疑的。通常我们会强调代码中注释数量的多少,而轻视了对注释质量的提高。编码是及时添加注释,会给后续代码的维护人员带来很大的便利。但是如果注释不注意更新,或者由于拷贝、粘贴引起的错误的注释,则会误导阅读人员,反而给阅读带来障碍。

除了注释要 及时更新外,我们还应对注释的内容要特别关注。注释要尽量简单、清晰明了,避免使用含混晦涩的语言,同时着重 注释的意义,对不太直观的部分进行注解。请见清单 2。

清单 2. 有意义的注释


 

这样的注释方式在 JavaScript 代码中经常见到。"initialize valueA to be sero" 这样的注释有什么用呢?难道阅读程序的工程师从"var valueA = 0;"复制语句中看不出来么?"set timeout to be 20s"这条注释,不只是因拷贝、粘贴引起的时间大小的错误,同时也误导了程序员对这条语句的理解。setTimeout() 函数的作用并非是设置函数执行的超时时间,而是等待一定时间后执行所调用的函数,害人匪浅呀。这样的注释内容宁可删掉。

此外,JavaScript 的注释有两种"//" 和"/* .... */",建议"//"用作代码行注释,"/* .... */"形式用作对整个代码段的注销,或较正式的声明中,如函数参数、功能、文件功能等的描述中。

标识符命名

JavaScript 中的标识符的命名规则:

  • 以字母、下划线'_'或美元符号'$'开头

  • 允许名称中包含字母,数字,下划线'_'和美元符号'$'

  • 区分大小写

变量、参数、成员变量、函数等名称均以小写字母开头,构造器的名称以大写字母开头。下划线'_'开头的变量一般习惯于标识私有 / 局部成员。而美元符号'$'开头的变量习惯于标识系统相关,比如系统进程等。应避免用下划线'_'或美元符号'$'来命名标识符。尽可能地降低代码的阅读负担。

声明

变量的声明

尽管 JavaScript 语言并不要求在变量使用前先对变量进行声明。但我们还是应该养成这个好习惯。这样可以比较容易的检测出那些未经声明的变量,避免其变为隐藏的全局变量,造成隐患。

在函数的开始应先用 var 关键字声明函数中要使用的局部变量,注释变量的功能及代表的含义,且应以字母顺序排序。每个变量单独占一行,以便添加注释。这是因为 JavaScript 中只有函数的 {} 表明作用域,用 var 关键字声明的局部变量只在函数内有效,而未经 var 声明的变量则被视为全局变量。我们来看下清单 3。

清单 3. 局部变量声明


 

从上例的输出惊奇地发现,用 var 声明过的变量 valueA 和没有声明的变量 valueB 是有区别的。特别需要注意的是,在函数内部用 var 声明的变量为局部变量,这样可以有效地避免因局部变量和全局变量同名而产生的错误。

函数的声明

函数也应在调用前进行声明,内部函数应在 var 声明内部变量的语句之后声明,可以清晰地表明内部变量和内部函数的作用域。

此外,函数名紧接左括号'('之间,而右括号')'和后面的'{'之间要有个空格,以清楚地显示函数名以其参数部分,和函数体的开始。若函数为匿名 / 无名函数,则 function 关键字和左括号'('之间要留空格,否则可能误认为该函数的函数名为 function。

标签:javascript,编程,编码
0
投稿

猜你喜欢

  • security.js实现的RSA加密功能示例

    2024-04-08 10:54:12
  • python爬虫使用requests发送post请求示例详解

    2022-02-26 16:50:22
  • golang简单读写文件示例

    2024-05-22 10:13:21
  • 如何基于Django实现上下文章跳转

    2022-02-11 02:38:05
  • python 装饰器功能以及函数参数使用介绍

    2022-04-03 05:12:32
  • 对python使用telnet实现弱密码登录的方法详解

    2023-12-28 02:52:46
  • java代码实现mysql分表操作(用户行为记录)

    2024-01-17 22:57:09
  • PHP数据库表操作的封装类及用法实例详解

    2023-11-12 07:41:23
  • 基于Django与ajax之间的json传输方法

    2023-01-12 19:52:58
  • 关于pyinstaller 打包多个py文件的问题

    2022-01-19 17:49:10
  • 浅谈vue异步数据影响页面渲染

    2024-04-30 10:45:19
  • 理解Python数据离散化手写if-elif语句与pandas中cut()方法实现

    2023-02-24 10:33:33
  • HTML的基本元素

    2010-03-16 12:39:00
  • pandas和spark dataframe互相转换实例详解

    2022-12-12 20:26:38
  • 详解Python如何获取列表(List)的中位数

    2022-02-01 02:35:37
  • Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法

    2023-06-28 02:47:02
  • Python几种绘制时间线图的方法

    2021-08-16 10:43:05
  • 最新Python APScheduler 定时任务详解

    2021-05-03 21:58:53
  • Python类和对象基础入门介绍

    2022-04-03 12:14:48
  • Django配置Mysql数据库连接的实现

    2024-01-28 10:48:33
  • asp之家 网络编程 m.aspxhome.com