网络编程
位置:首页>> 网络编程>> JavaScript>> 如何优化下面这段代码?

如何优化下面这段代码?

作者:dh20156 来源:w3cgroup 发布时间:2010-01-23 11:30:00 

标签:循环,JavaScript,编程,代码优化

DEMO:

var testobj = document.getElementById("test");
for(var i=0;i<testobj.childNodes.length;i++){
    var oText = testobj.childNodes[i].innerHTML;
    if(oText==""){
        alert("Item "+i+" is null");
    }
}

该例主要是看内存的分配,重点优化应该是将循环中的定义变量操作放到循环外,这样就不会重复分配内存空间;另外一些优化可以考虑递减循环操作,循环外定义变量i的值,如下:


var testobj = document.getElementById("test");
var oText = "";
var i = testobj.childNodes.length;
for(;i>-1;i--){
    oText = testobj.childNodes[i].innerHTML;
    if(oText==""){
        alert("Item "+i+" is null");
    }
}

M2说testobj.childNodes[i].childNodes比testobj.childNodes[i].innerHTML快,暂且不提;

月MM说,关键的问题是循环体内没有必要对oText重复初始化,而不是重复声明;因为for不是一个scope,对于js来说;但是对于其他一些语言如C或者Java显然是有区别的;

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com