浅谈JavaScript编程语言的编码规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈JavaScript编程语言的编码规范
简介: JavaScript 编程语言作为最流行的客户端脚本语言,早已被众多Web 开发人员所熟悉。随着Web2.0 时代的到来和Ajax 技术的广泛应用,JavaScript 也逐渐吸引着更多的视线。工作中要求越多的是对JavaScript 语言的深入学习,灵活运用,和对编码质量的保证。
对于熟悉C/C++ 或Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript 的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。软件存在的长期价值直接与编码的质量成比例。编码规范能帮助我们降低编程中不必要的麻烦。而JavaScript 代码是直接发送给客户浏览器的,直接与客户见面,编码的质量更应该受到关注。
本文浅谈JavaScript 编程中关于编码规范的问题,分析其中缘由。希望引起更多Web 开发人员对JavaScript 编码规范问题的关注和对软件产品质量问题的重视。
前言
提及C/C++ 和Java 编码规范,相信许多工程师并不生疏。但说到JavaScript 语言的编码规范,也许您会忍俊不禁。JavaScript 不是语法很灵活吗?变量随时用随时可以声明;语句结束符可以不要;字符串和数字也可以相加;参数多一个少一个也不会报错。没错,当您从C/C++ 和Java 严格的语法规定之下,转向JavaScript 语言,会觉得自由了很多,轻松了很多。语法松散是JavaScript 重要的特征。它灵活易懂,给开发人员带来了很多方便,但如果编写过程中不注意,代码的调试成本和维护成本则会无形地增加。
JavaScript 编码会随应被直接发送到客户端的浏览器,代码规范不只是代码质量的保证,也影响到产品的长期信誉。希望JavaScript 编程语言的规范问题也能同样引起更多朋友的关注。
JavaScript 编码规范建议
本文就JavaScript 编码过程中涉及的排版、命名、声明、作用域、及一些特殊符号的使用等方面,根据个人在学习工作中的总结,给出自己的一些建议,并分析其中缘由,以供参考。
JavaScript 文件引用
JavaScript 程序应该尽量放在 .js 的文件中,需要调用的时候在HTML 中以
缩进
关于缩进的问题,不只是JavaScript,几乎所有的语言编写的时候,都会提及缩进的问题。缩进几乎是代码编写规范的第一课,是代码可阅读性判断的直接因素。
代码缩进的好处是不言而喻的,但是对于如何缩进,则没有标准而言。最受欢迎的是方便使用TAB 键缩进,也有些喜欢用2 个、4 个、8 个空格进行缩进。这样缩进风格不一,也同样给代码的阅读带来障碍。
本文提倡用4个空格来进行缩进,并在同一产品中采用同一种缩进标准。不支持用TAB 键进行缩进。这是因为直到现在还没有统一的标准来定义TAB 键所代替的空白大小,有些编辑器解析为4 个空格大小,有些则解析为8 个。因而用不同的编辑器查看代码,可能造成格式混乱。当然TAB 简单易用,为解决这个问题,建议在设置开发环境时,将编辑器里的TAB 快捷键重新设置为4 个空格。据了解Eclipse, Vi, Nodepad++,Editplus, UltraEdit 等流行的编辑器,均提供了此功能。
注释
代码中的注释很重要,自然也是毋庸置疑的。通常我们会强调代码中注释数量的多少,而轻视了对注释质量的提高。编码是及时添加注释,会给后续代码的维护人员带来很大的便利。但是如果注释不注意更新,或者由于拷贝、粘贴引起的错误的注释,则会误导阅读人员,反而给阅读带来障碍。
除了注释要及时更新外,我们还应对注释的内容要特别关注。注释要尽量简单、清晰明了,避免使用含混晦涩的语言,同时着重注释的意义,对不太直观的部分进行注解。请见清单2。
清单2. 有意义的注释
代码:
//following section is used to initialize golbal variables (good)
var valueA = 0; //initialize valueA to be sero (bad)
var valueB = 1;
...
//call f1 function after waiting for 50 seconds. (good)
setTimeout (f1,50000); //set timeout to be 20s (copy error)
...
这样的注释方式在JavaScript 代码中经常见到。"initialize valueA to be sero" 这样的注释有什么用呢?难道阅读程序的工程师从"var valueA = 0;"复制语句中看不出来么?"set timeout to be 20s"这条注释,不只是因拷贝、粘贴引起的时间大小的错误,同时也误导了程序员对这条语句的理解。setTimeout () 函数的作用并非是设置函数执行的超时时间,而是等待一定时间后执行所调用的函数,害人匪浅呀。这样的注释内容宁可删掉。