龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

编写高质量JavaScript代码的基本要点(1)(5)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
parseInt()下的数值转换(Number Conversions with parseInt()) 使用parseInt()你可以从字符串中获取数值,该方法接受另一个基数参数,这经常省略,但不应该。当字符串

parseInt()下的数值转换(Number Conversions with parseInt())

使用parseInt()你可以从字符串中获取数值,该方法接受另一个基数参数,这经常省略,但不应该。当字符串以”0″开头的时候就有可能会出问 题,例如,部分时间进入表单域,在ECMAScript 3中,开头为”0″的字符串被当做8进制处理了,但这已在ECMAScript 5中改变了。为了避免矛盾和意外的结果,总是指定基数参数。

  1. var month = "06",  
  2.     year = "09";  
  3. month = parseInt(month, 10);  
  4. year = parseInt(year, 10); 

此例中,如果你忽略了基数参数,如parseInt(year),返回的值将是0,因为“09”被当做8进制(好比执行 parseInt( year, 8 )),而09在8进制中不是个有效数字。

替换方法是将字符串转换成数字,包括:

  1. +"08" // 结果是 8  
  2. Number("08") // 8 

这些通常快于parseInt(),因为parseInt()方法,顾名思意,不是简单地解析与转换。但是,如果你想输入例如“08 hello”,parseInt()将返回数字,而其它以NaN告终。

编码规范(Coding Conventions)

建立和遵循编码规范是很重要的,这让你的代码保持一致性,可预测,更易于阅读和理解。一个新的开发者加入这个团队可以通读规范,理解其它团队成员书写的代码,更快上手干活。

许多激烈的争论发生会议上或是邮件列表上,问题往往针对某些代码规范的特定方面(例如代码缩进,是Tab制表符键还是space空格键)。如果你是 你组织中建议采用规范的,准备好面对各种反对的或是听起来不同但很强烈的观点。要记住,建立和坚定不移地遵循规范要比纠结于规范的细节重要的多。

缩进(Indentation)

代码没有缩进基本上就不能读了。唯一糟糕的事情就是不一致的缩进,因为它看上去像是遵循了规范,但是可能一路上伴随着混乱和惊奇。重要的是规范地使用缩进。

一些开发人员更喜欢用tab制表符缩进,因为任何人都可以调整他们的编辑器以自己喜欢的空格数来显示Tab。有些人喜欢空格——通常四个,这都无所谓,只要团队每个人都遵循同一个规范就好了。这本书,例如,使用四个空格缩进,这也是JSLint中默认的缩进。

什么应该缩进呢?规则很简单——花括号里面的东西。这就意味着函数体,循环 (do, while, for, for-in),if,switch,以及对象字面量中的对象属性。下面的代码就是使用缩进的示例:

  1. function outer(a, b) {  
  2.     var c = 1,  
  3.         d = 2,  
  4.         inner;  
  5.     if (a > b) {  
  6.         inner = function () {  
  7.             return {  
  8.                 r: c - d  
  9.             };  
  10.         };  
  11.     } else {  
  12.         inner = function () {  
  13.             return {  
  14.                 r: c + d  
  15.             };  
  16.         };  
  17.     }  
  18.     return inner;  

花括号{}(Curly Braces)

花括号(亦称大括号,下同)应总被使用,即使在它们为可选的时候。技术上将,在in或是for中如果语句仅一条,花括号是不需要的,但是你还是应该总是使用它们,这会让代码更有持续性和易于更新。

想象下你有一个只有一条语句的for循环,你可以忽略花括号,而没有解析的错误。

  1. // 糟糕的实例  
  2. for (var i = 0; i < 10; i += 1)  
  3.    alert(i); 

但是,如果,后来,主体循环部分又增加了行代码?

  1. // 糟糕的实例  
  2. for (var i = 0; i < 10; i += 1)  
  3.    alert(i);  
  4.    alert(i + " is " + (i % 2 ? "odd" : "even")); 

第二个alert已经在循环之外,缩进可能欺骗了你。为了长远打算,最好总是使用花括号,即时值一行代码:

  1. // 好的实例  
  2. for (var i = 0; i < 10; i += 1) {  
  3.    alert(i);  

if条件类似:

  1. // 坏  
  2. if (true)  
  3.    alert(1);  
  4. else 
  5.    alert(2);  
  6.  
  7. // 好  
  8. if (true) {  
  9.    alert(1);  
  10. else {  
  11.    alert(2);  

精彩图集

赞助商链接