一、将循环控制量保存到局部变量
对数组和列表对象的遍历时,提前将length保存到局部变量中,避免在循环的每一步重复取值。使用前:
var list = document.getElementsByTagName('p');
for (var i = 0; i < list.length; i++)
{ …… }
本例中,每次循环都要对循环条件做判断,也就是说,每次都要对list.length进行运算,如果提前保存list.length,每次循环只需判断变量的值,不用在进行计算。
使用后:
var list = document.getElementsByTagName('p');
for (var i = 0, l= list.length; i < l; i++)
{ ……}
二、顺序无关的遍历时,用while替代for
该方法可以减少局部变量的使用。比起效率优化,更能直接看到的是字符数量的优化。不过,该做法有程序员强迫症的嫌疑。使用前:
var arr = [1,2,3,4,5,6,7];
var sum = 0;
for (var i = 0, l = arr.length; i < l; i++)
{
sum += arr[i];
}
使用后:
var arr = [1,2,3,4,5,6,7];
var sum = 0, l = arr.length;
while (l--)
{
sum += arr[l];
}