javascript循环性能大比拼

本文通过实验对比了不同类型的JavaScript循环的性能,包括while循环、for循环等,并给出了提高循环效率的建议。

======================================================
注:本文源代码点此下载
======================================================

在设计选择器,我就做了这方面的比较,只不过这次幸运遇到另一个测试程序,它覆盖面更广,测试类型更全面。最后发现自己在选择器中用了一个很慢的循环……囧。由于ie性能比较低下,原程序根本无法运行,因此我把它移到我的博客上来,汉化一下,并减少大量的测试个数(原程序测试个数为1000,我把ie的测试个数减少为300)。但即使这样,它还是弹出警告框问你是否中止循环,你继续按否,就能看到结果了。

="" ="" javascript循环测试程序="" 开始测试="" ="" ="">

运行代码

由上面的实验我们基本上可得出以下结论:

while循环比for循环快。

倒序循环比顺序循环快。

缓存length属性比不缓存快。

请不要用arr[i]来判断是否中止循环。

请不要在循环内声明变量,用它来引用数组元素,若真的想省几个字符,请在循环外声明。

除非是循环对象的属性,请不要用for...in循环。

请不要用javascript 1.6 的foreach迭代器,特慢!如果一定要用foreach,那么建议自己打造一个。

由于javascript与dom紧密相连,操作dom基本上是操作其中的元素节点,因此我觉得基本上以下几个循环就够用:

//顺序

for(var i=0,n=arr.length;i


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值