高级优化:
1) for循环 和 while循环
用while循环将会得到比for循环更好的效率。然而,从数组中读取数据,用for in循环式最好的选择!
所以我们不推荐使用:
for (var i=0; i < 1000; i++)
{
//进行某些操作
}而推荐使用
var i=-1
while (++i < 1000)
{
//进行某些操作
}
2) 从数组中读取数据
我们通过测试发现,for in循环的效率大大高于其他的循环方式。参看:
arr = []
MAX = 5000
//数组赋值
for (i=0; i < MAX; i++)
{
arr[i] = i
}
var item = null
// For 循环
for (var i=0; i < MAX; i++)
{
item = arr[i]
}
// For 循环
for (var i in arr)
{
item = arr[i]
}
// While 循环
i = -1
while(++i < MAX)
{
item = arr[i]
}
3) 向数组中写入数据(while , for)可以看到while循环稍占优势。
4) _global(全局)变量同Timeline(时间轴)变量
我们猜测采用全局变量能提高变量调用速度,然而效果并不像预计的那样明显。
5) 单行、多行变量赋值
我们发现单行变量赋值效率大大高于多行。比如:
a = 0
b = 0
c = 0
d = 100
e = 100
效率就不如:
a = b = c = 0
d = e = 100
6) 变量名寻址
这个测试反映了变量名的预寻址是非常重要的,尤其是在循环的时候,一定要先给丁一个指向。这样大大节约了寻址时间。
比如:
var num = null
t = getTimer()
for (var i=0; i < MAX; i++)
{
num = Math.floor(MAX) - Math.ceil(MAX)
}
t1.text = "Always lookup: " + (getTimer() - t)
就不如:
t = getTimer()
var floor = Math.floor
var ceil = Math.ceil
for (var i=0; i < MAX; i++)
{
num = floor(MAX) - ceil(MAX)
}