equals
VS
for(var i=0;i<lines.length;i++) {
var line = lines[i];
这两个片段有不同的表现。如果是,请解释原因。
答案 0 :(得分:1)
我已经对此进行了基准测试,并发现性能几乎没有差异。
如果您想重新创建它:
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));
这是有道理的,因为几乎没有区别,两种情况都会创建一个将被存储的本地对象,并将多次重新分配。
答案 1 :(得分:0)
在这两种情况下,您的代码都会有所不同。
在第一个line
是 全局变量 ,可以在 for循环之外访问,这不是第二个案例。
所以我认为性能比较在这里没有任何意义!
即便如此,虽然我不认为这是一个复杂的操作,但一次又一次地声明一个变量是不必要的。但是,重复声明它会使性能恶化。