续
变量声明有无和效率
首先创造一个 Date 对象,在调用 getTime() 10万次。
- 变量没有明确声明:
date = new Date();
for (i=0; i<100000; i++)
date.getTime()
执行大约用了470ms。
- 变量明确声明:
date = new Date()
var dateVar = date // 添加
for (i=0; i<100000; i++)
dateVar.getTime()
执行大约用了340ms。快了38%。
因为用var声明的为本地变量,所以能快速访问。
但不用var声明的为全局变量,访问速度较慢。
类型声明有无和效率
指定类型:
date = new Date() var dateTyped:Date = date // 指定类型 for (i=0; i<100000; i++) dateTyped.getTime()
执行大约用了300ms。比前面的340ms快了13%,比470ms快了56%。
这是因为AS3.0支持类型(对dynamic的类用prototype添加的函数无效)。
变量声明的总结
如果把i也用var声明的话:
date = new Date()
var dateTyped:Date = date
for (var i=0; i<100000; i++) // i也用var声明
dateTyped.getTime()
执行大约用了20ms!比300ms快了1400%,比470ms快了2250%!
再给i添加上类型:
date = new Date()
var dateTyped:Date = date
for (var i:int=0; i<100000; i++) // 把i声明成int型
dateTyped.getTime()
执行大约用了13ms。比20ms快了35%,300ms快了2208%,比470ms快了3515%!
这是因为i调用了两次。
所以写代码最好:
-
加上
var - 加上类型
![[Google]](http://www.google.com/logos/Logo_25wht.gif)
![[Synchronous Space]](http://weihe924stephen.googlepages.com/syncspace-banner.jpg)
![[Creative Commons License]](http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)
![[Add to Google]](http://buttons.googlesyndication.com/fusion/add.gif)
![[Aggregated by MXNA]](http://weblogs.macromedia.com/mxna/images/mxna88x31.gif)
![[Flex.org]](http://www.flex.org/images/flexorg.gif)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](http://validator.w3.org/feed/images/valid-atom.png)
![Validate my RSS feed [Valid RSS]](http://resource.googlecode.com/files/valid-rss.png)
![[I heart FeedBurner]](http://www.feedburner.com/fb/images/pub/i_heart_fb.gif)
没有评论:
发表评论