Javascript程序优化(3)

作者:Grace 来源:Grace 时间:2008-06-02 13:12:00 

条件判断

优化 if 语句

用 if 和多个 else 语句时,将就有可能的情况放在最先,依次类推。同时尽量减少 else 和 if 的数量,将条件按照二叉树的方式进行排列。例如

if (i > 0 && i < 10) {
    alert('between 0 and 10');
} else if (i > 9 && i < 20) {
    alert('between 10 and 20');
} else if (i > 19 && i < 30) {
    alert('between 19 and 30');
} else {
    alert('out of range');
}可以将这段代码写成

if (i > 0) {
    if (i < 10) {
        alert('between 0 and 10');
    } else {
        if (i < 20) {
            alert('between 10 and 20');
        } else {
            if (i < 30) {
                alert('between 20 and 30');
            } else {
                alert('Greater than or equal 30');
            }
        }
    }
} else {
    alert('less than or equal 0');
}

这个样子。虽然看上去非常的复杂,但是它已经考虑了很多代码潜在的条件判断情况,所以执行得更快。

switch 和 if

用 switch 还是 if 已经是老生常谈的问题了。一般来说,超过两个 if...else 判断的时候,最好是使用 switch 语句。这样做可以使代码更加清晰并且效率更高。同时,case 条件也可以使用任何类型的值。

语句瘦身

其实非常可以容易理解,脚本中的语句越少,执行所需的时间越短(听起来与上述观点有矛盾)。有很多方法可以将代码中的语句缩短,比如下面的一些花招。

定义多个变量

很明显,一条语句可以定义多个变量。这样做不仅可以缩小代码体积,还可以减少语句数量以减少执行时间。比如下面的代码

var webSite   = "www.gracecode.com";
var haveLunch = function () {...}; 

就可以精简为

var webSite = "www.gracecode.com", haveLunch = function () {...};

相信这样的语句也不会给阅读带来多大的障碍。

迭代因子

使用迭代因子,尽可能的合并语句。比如

var girlFriend = girl[i];
i++;

这样的语句可以使用

var girlFriend = girl[i++];

替代。不过建议特别小心 i++ 和 ++i 的区别(该死的 C 语言后遗症)。

使用数组和对象字面量

这点其实在上一篇的时候就提到过,在这里就不复述。比如

var mySite = new Object;
mySite.author = "feelinglucky";
mySite.location = "http://www.gracecode.com";就可以精简到

var mySite = {author:"feeinglucky", location:http://www.gracecode.com};

这样子。

其他的花招

优先使用内置方法
比如

function power(number, n) { 
   var result = number; 
    
   for (var i = 1; i < n; i++) { 
       result *= number; 
   }
  return result;
}

这样的函数,完全就可以使用 Math.pow 来完成。Javascript 已经有很多现成的内置方法,只要允许最好使用它们。

存储常用的值

当多次用到同一个值的时候,可以先将其存储在局部变量中,以便快速访问。这个就不复述了,偷个懒不好意思。

标签:程序,javascript,优化
0
投稿

猜你喜欢

  • 初学MySql5 所应了解的知识和常见问题

    2009-03-06 17:49:00
  • asp中字符编码转换的10个函数[荐]

    2007-11-11 10:32:00
  • 禁止背景图在网页中平铺

    2011-04-29 14:10:00
  • 通过事务日志解决SQL Server常见四大故障(一)

    2009-03-25 13:46:00
  • 网页中插入视频播放代码全集

    2007-10-22 17:48:00
  • SQL Server 自动化管理分区设计方案(图解)

    2011-07-21 17:25:04
  • asp三天学好ADO对象之第三天

    2008-10-09 12:53:00
  • 《细节决定交互设计的成败》

    2009-06-02 11:23:00
  • 如何给eWebEditor编辑器加上运行代码框功能

    2007-09-25 07:02:00
  • 网页设计中HTML常范的五个错误

    2008-04-22 18:14:00
  • iPhone应用设计趋势[译]

    2009-11-27 19:52:00
  • Asp+Sql 对数据库的各种操作

    2007-09-22 10:38:00
  • VB应用程序访问SQL Server的常用方法

    2009-01-21 14:28:00
  • MYSQL数据库实用学习资料之常用命令集合

    2009-03-06 18:12:00
  • SQL Server 复制需要有实际的服务器名称才能连接到服务器

    2012-07-11 15:46:51
  • 如何编写CSS代码才能更有效率

    2007-11-07 18:51:00
  • EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页

    2011-04-08 10:40:00
  • ASP实现全站的301跳转

    2010-03-27 21:45:00
  • HTML 5 胜出:XHTML2 宣告夭折

    2009-07-12 15:23:00
  • Yahoo发布一款FireFox网站开发插件

    2007-09-23 16:11:00
  • asp之家 网络编程 m.aspxhome.com