数码资讯
是否需要在for循环中缓存长度值。
如果需要在for循环中缓存长度值,我相信很多程序猿都卷入了这个问题。 在JS性能优化中,有一个常见的小优化,即 非缓存 对于(var i = 0;i < arr.length;i++){ … } 缓存 VaR len = arr.length; 对于(var i = 0;i < i;i + +){
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
如果需要在for循环中缓存长度值,我相信很多程序猿都卷入了这个问题。
在JS性能优化中,有一个常见的小优化,即
非缓存
对于(var i = 0;i < arr.length;i++){
…
}
缓存
VaR len = arr.length;
对于(var i = 0;i < i;i + +){
…
}
那么,我们是否应该放弃这种写作方式,还有另一种情况必须加以利用。
看看例子:
复制代码代码如下所示:
var div = document.getelementsbytagname(div),我,DIV;
为(i = 0;i < divs.length;i++){
div = document.createelement(div);
document.body.appendchild(div);
}
上面的代码会导致无限循环:第一行代码将获得所有的div元素的节点列表,因为列表是动态的,只要有一个新的div添加到页面上,下一个周期将在divs.length评价,所以我和divs.length每次会增加,他们不平等的价值,创造了一个死循环。
所以如果你想遍历列表,最好是用长度属性初始化二变量,然后比较迭代器的变量,修改的代码如下:
复制代码代码如下所示:
var div = document.getelementsbytagname(div),我,DIV,Len;
为(i = 0;len = divs.length;我< len;i++){
div = document.createelement(div);
document.body.appendchild(div);
}
在这个例子中,Len的初始化,由于晶状体divs.length快照保存在一个周期的开始,因此避免无限循环的一个例子,所以当需要迭代的列表,用这种方法进行保险。
总结:
1、缓存长度值有助于性能优化。这是一个根据具体情况来判断的问题。一般来说,减少DOM访问是很好的。
2。当你需要操作的节点列表,建议长度的值被缓存,以避免死循环。
以上内容全面介绍了在for循环中缓存长度值的需要,希望您喜欢它。
在JS性能优化中,有一个常见的小优化,即
非缓存
对于(var i = 0;i < arr.length;i++){
…
}
缓存
VaR len = arr.length;
对于(var i = 0;i < i;i + +){
…
}
那么,我们是否应该放弃这种写作方式,还有另一种情况必须加以利用。
看看例子:
复制代码代码如下所示:
var div = document.getelementsbytagname(div),我,DIV;
为(i = 0;i < divs.length;i++){
div = document.createelement(div);
document.body.appendchild(div);
}
上面的代码会导致无限循环:第一行代码将获得所有的div元素的节点列表,因为列表是动态的,只要有一个新的div添加到页面上,下一个周期将在divs.length评价,所以我和divs.length每次会增加,他们不平等的价值,创造了一个死循环。
所以如果你想遍历列表,最好是用长度属性初始化二变量,然后比较迭代器的变量,修改的代码如下:
复制代码代码如下所示:
var div = document.getelementsbytagname(div),我,DIV,Len;
为(i = 0;len = divs.length;我< len;i++){
div = document.createelement(div);
document.body.appendchild(div);
}
在这个例子中,Len的初始化,由于晶状体divs.length快照保存在一个周期的开始,因此避免无限循环的一个例子,所以当需要迭代的列表,用这种方法进行保险。
总结:
1、缓存长度值有助于性能优化。这是一个根据具体情况来判断的问题。一般来说,减少DOM访问是很好的。
2。当你需要操作的节点列表,建议长度的值被缓存,以避免死循环。
以上内容全面介绍了在for循环中缓存长度值的需要,希望您喜欢它。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。