Javascript 'var variable' in loop vs out out.性能上的任何差异

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

本文关键字:out 性能 任何差 loop var variable in Javascript vs      更新时间:2023-09-26
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];

这样做吗,这两个代码段具有不同的性能。如果是,请解释原因。

我对此进行了基准测试,发现性能几乎没有差异。

如果要重新创建它:

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));

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

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

在第一个中line是一个全局变量,可以在 for 循环之外访问,而在第二个循环中并非如此。

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

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