首页 > 解决方案 > 在使用 Javascript 和块范围的循环之前分配变量是否运行得更快?

问题描述

这是真的:

可以放在循环之外的语句或赋值将使循环运行得更快。

var i;
for (i = 0; i < arr.length; i++) {

更好的代码

var i;
var l = arr.length;
for (i = 0; i < l; i++) {

https://www.w3schools.com/js/js_performance.asp

更新

在循环之前声明 i 的目的是什么?

标签: javascript

解决方案


它可以使代码更快一点。在第一个片段中,每次迭代时,引擎都必须评估

arr.length

查找数组的大小可能比查找普通变量所指的整数需要更多的处理时间。

在第二个片段中,您只需查找一次数组的大小,而不是每次迭代。

也就是说,考虑到当今计算机的速度有多快,这种考虑几乎可以肯定在 99.9% 的情况下是无关紧要的。最好先编写干净可读的代码,然后仅在出现问题时才优化性能。


推荐阅读