JavaScript简单循环优化
在编写JavaScript应用程序时,我通常会像这样编写for循环。
for (var i = 0; i < elements.length; ++i) { //环形... }
这没有什么问题,但这不是一种有效的处理方法。所需要的只是对for循环在每次运行时的功能有所了解。这样可以将循环分为三个部分。
for (/*initialise loop*/; /*test loop parameter*/; /*run command every loop*/) { //环形... }
第一部分初始化循环,这使您可以设置在循环期间及以后使用的计数器。第二部分用于在循环的每次迭代开始时测试某些条件,如果结果为true,则循环继续,如果结果为false,则停止。第三部分也在循环的每次迭代开始时运行,并用于执行小的计算,例如循环计数器的递增。第三个参数实际上不是必需的,您可以通过执行以下操作来获得。
for(var i = 0; i < elements.length;){ ++i; //环形... }
加快循环速度的一种绝佳方法是在循环的初始化部分设置多个变量。如果要对数组中的项目进行计数,则每次循环时都必须找出数组的长度。一种更有效的方法是找出开始时数组的长度,将此值存储在变量中,然后测试该变量。这是一个例子。
for (var i = 0,j = items.length; i < j; ++i) { //环形... }
这里,项目数组的长度存储为变量j,然后用于对循环计数器i进行测试。这意味着您只需要查找一次数组的长度,而不是每次循环都需要查找一次。