在我们遍历数组 for 循环的时候,通常习惯的写法是这样:
for(var i= 0 ; i < myarray.length ; i++){
……
……
}
但是在这段代码中,有一个十分明显的问题,就是每次在循环的时候,都会计算一边 myarray.length 的值,这就意味着每次都要实时查询DOM,而DOM的操作又是十分昂贵的。在这个时候,如果能够把 myarray.length 的值缓存出来,能够提升一些效率,代码如下:
for(var i =0 ; var length=myarray.length > i ; i++ ){
……
……
}
这样在整个循环过程中,你只检索了一次长度值。
在此基础上,将变量提取出来,如下:
function a( ){
var i = 0 ,length ,myarray= [ ] ;
for( i = 0 , length = myarray.length ; i < length ; i++){
……
}
}