Javascript 'var variable' 内部循环与外部循环。任何性能差异

Javascript 'var variable' inside loop vs outside. Any difference in performence

for(var i=0;i<lines.length;i++) {
  var line = lines[i];

var line;
for(var i=0;i<lines.length;i++) {
  line = lines[i];

这两个片段有不同的表现。如果是,请说明原因。

您的代码在这两种情况下的工作方式不同。

第一个 line 是一个 全局变量 并且可以在 外部访问循环,第二个不是这样。

所以我认为这里的性能比较没有任何意义!

即便如此,一次又一次地声明一个变量是不必要的,尽管我不认为这是一个复杂的操作。但是是的,重复声明它会降低性能。

我有一个关于此的基准测试 运行,发现性能几乎没有差异。

如果您想重新创建它:

var lines = new Array(#BIG_NUMBER#);

lines.fill(#BIG_OBJECT#);

var a = (new Date()).getTime();

for(var i=0;i<lines.length;i++) {
  var line = lines[i]; }

var b = (new Date()).getTime();

var line;
for(var i=0;i<lines.length;i++) {
  line = lines[i]; }

var c = (new Date()).getTime();
console.log("a:" + (b-a) + " b:" + (c-b));

这是有道理的,因为几乎没有区别,两种情况都会创建一个将被存储的本地对象,并将多次重新分配它。