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 中以

  从清单 4 的输出可以看出,inF() 函数仅在 outF() 函数的内部生效,局部变量 innerA 对内部函数的作用域生效。这样的编码方式使得变量和函数的作用域变得清晰。

  语句

  对于简单语句而言,需要提及的仍然是分号必要性,同时,一行最多有一个语句。如果一个赋值语句是用函数和对象来赋值,可能需要跨多行,一定切记要在赋值语句末加上分号。

  这是因为 javascript 中,所有表达式都可以当语句,遇换行符时会解析为表达式的结束,此时不规范的换行和分号的丢失,可能引入新的错误。

  对于复合语句,if, for, while, do, switch, try … catch 等代码体,函数定义的函数体,对象的定义等都需要放在花括号'{}'里面。

  '{' 应在行末,标志代码块的开始。

  '}' 应在一行开头,标志代码块的结束,同时需要和'{'所在行的开始对齐,以表明一个完整的复合语句段。这样可以极大地提高代码的可阅读性,控制逻辑能清晰地表现出来。

  被包含的代码段应该再缩进 4 个空格。

  即使被包含的代码段只有一句,也应该用花括号'{}'包含。尽管不用花括号代码也不会错,但如若需要增加语句的话,则较容易因花括号遗漏而引起的编译错误或逻辑错误。

  return语句在使用时也需慎重,如果用表达式的执行作为返回值,请把表达式和 return 放在同一行中,以免换行符被误解析为语句的结束而引起返回错误。return 关键字后若没有返回表达式,则返回 undefined。构造器的默认返回值为 this。

  清单 5. return 表达式

  在清单 5 中显示了因返回表达式没有和 return 关键字放在同一行而引起的返回错误,需重视。

  特殊符号

  空白符

  适当的空白行可以大大提高代码的可阅读性,可以使代码逻辑更清晰易懂。同时,在表达式中适当的留空白,也会给代码的阅读带来方便。

  关键字的后面如有括号,则最好在关键字和左括号'('之间留空白,如 for, if, while 等。而函数名和括号之间则不宜留空白,但若是匿名函数,则必须在 function 和左括号'('之间留空白,否则,编辑器会误认为函数名为 function。

  在表达式中,二元运算符 ( 除左括号'(',左方括号'[',作用域点'.') 和两个操作数之间最好留空白。一元运算符(若不是词 typeof 等)和其操作数之间不宜留空白。

  逗号','的后面需要留空白,以显示明确的参数间隔,变量间隔等。

  分号';'之后通常表明表达语句的结束,而应空行。在 for 的条件语句中,分号之后则应该留空白。

  { } 和 [ ]

  在 javascript 中,如需定义空对象和空数组,通常很自然地想到用 new Object() 和 new Array() 的方法。其实花括号'{}'和方括号'[]'可以直接用来定义一个空对象和一个空数组。这种书写方法可以使代码看起来简单易懂。

分类:Javascript教程 时间:2012-01-07 人气:3
本文关键词:
分享到:

相关文章

  • JavaScript实现页面实时显示当前时间的简单实例 2012-01-02

    这篇文章介绍了页面实时显示当前时间的简单实例,有需要的朋友可以参考需要 复制代码 代码如下: <html> <head> <title>JavaScript实现页面实时显示当前时间</title> </head> <body> <script language="javascript"> function showtime() { var today,hour,second,minute,year,month,d

  • Javascript倒计时跳转页面实例 2012-01-03

    在js中实现页面定时跳转我们要使用setInterval或setTimeOut函数,当然还可以使用页面的metea实现了,下面我介绍两个实例。 例1 倒计时刷新页面 代码如下 <script type="text/javascript" language="JavaScript"> var startTime = new Date(); var endTime=startTime.getTime()+10*60*1000; var g_blinkswitch = 0; var g_b

  • JavaScript修改css样式style动态改变元素样式 2012-01-04

    修改css样式style在某些情况下还是比较实用的,可以动态改变一些样式,接下来为大家介绍下使用JavaScript是如何做到的 一、局部改变样式 分为改变直接样式,改变className和改变cssText三种。需要注意的是: 注意大小写: javascript对大小写十分敏感,className不能够把“N”写成“n”,cssText也不能够把“T”写成“t”,否则无法实现效果。 调用方法: 如果改变className,则事先在样式表中申明类,但调用时不要再跟style,像document.

  • vs2008的JavaScript 语法提示(Intellisense)功能 2012-01-09

    一直想这javascript能提供注释功能就好了,vs2008里提供了智能感知(Intellisense)功能,想用这个功能的童鞋可以在html里开发javascript,最后再保存在js文件中。下面我们就介绍下javascript的智能感知(Intellisense)功能 JavaScript已经发展成为进行Web客户端编程的标准语言。它有大量的语言资源,但是对开发的支持并不完备。大多数使用JavaScript的开发人员更倾向于用原来的方法进行调试,但是现在有很多工具来减轻测试和调试的负担。

  • 为IE浏览器的javascript提速 2012-01-10

    随着现在网页设计越来越多的应用javascript技术,而且浏览器的Javascript引擎运行速度也成为各大浏览器比拼性能的重要指标,各家浏览器厂商皆宣称他们的浏览器速度更快,希望搅动现存的竞争态势。IE8浏览器的Javascript运行速度虽然相对于IE7以及IE6有着很大的提升,但相对于Webkit引擎的浏览器还是有一定的差距,在去年的ZDNET Javascript测试上Chrome浏览器表现突出,一举击败Firefox、Safari和微软的IE浏览器。不过因为IE浏览器相对庞大的使用人

  • 关于javascript中对浮点加,减,乘,除的精度分析 2012-01-11

    大学专业是计算机童鞋或多或小的知道 计算机是由二进制存储和处理数字的,不能精确到处理浮点数,且javascript也没有这样的方法 所以在浏览器计算的时候也会有误差,比如说 我想用 3.3 / 1.1 那么按道理来说 答案是 3 ,对不对 但是我们可以打印出来看下 结果令我们很惊讶 是 2.9999999999999996 .现在我们想 为了避免产生精度差异,需要计算的数字升级(乘以10的n次幂)成计算机能够精确识别的整数,等计算完毕再降级(除以10的n次幂). 这样处理下 就可以实现正常的结果

  • JavaScript Event学习第三章:早期的事件处理程序 2012-01-14

    被第二代浏览器所支持。 这些古老的浏览器只支持一种注册事件处理程序的方法,这个方法是Netscape发 明的。因为Netscape先发制人,所以如果微软也想做支持JavaScript事件的浏览 器就得跟着Netscape走,所以这里没有兼容性的问题。所以这种模式在任何支持 JavaScript的浏览器都能运行---除了Mac上的IE3,他根本就不支持事件。 注册事件处理程序 在内联式的事件注册模型中,事件处理程序就像是一个HTML元素的属性,比如: 1 <A HREF="somewhere

  • Javascript 遮罩层和加载效果代码 2012-01-14

    这篇文章介绍了Javascript 遮罩层和加载效果代码,有需要的朋友可以参考一下 复制代码 代码如下: //loading function showLoad(tipInfo) { var iWidth = 120; //弹出窗口的宽度; var iHeight = 0; //弹出窗口的高度; var scrolltop = 0; var scrollleft = 0; var cheight = 0; var cwidth = 0; var eTip = document.createEle

  • JavaScript脚本编写规范 2012-01-25

    对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript 的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。软件存在的长期价值直接与编码的质量成比例。编码规范能帮助我们降低编程中不必要的麻烦。而 JavaScript 代码是直接发送给客户浏览器的,直接与客户见面,编码的质量更应该受到关注。 本文浅谈 JavaScript 编程中关

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.070 (s). 10 q(s)