JavaScript入门教程

JavaScript简介
JavaScript语法基础
JavaScript流程控制
JavaScript函数
面向对象编程
JavaScript事件
JavaScript DOM
正则表达式
JavaScript BOM
AJAX

专题分析

浏览器兼容性
JS优化
Web前端开发规范
编辑器推荐
总结和笔记

学习助手

对象参考手册
ECMAScript分析
数据中心
QQ交流群

优化JS中的循环语句

一、将循环控制量保存到局部变量

对数组和列表对象的遍历时,提前将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];
}