我创建了四个不同的函数,如下所示:
var normal = function() {
return;
};
var control = function() {
return;
alert("Hello, world!");
};
var withArguments = function() {
return;
arguments;
};
var withEval = function() {
return;
eval("");
};
由于他们都什么都不做并立即返回,我希望他们所有人都具有相同的速度。但是,在 jsPerf 上对其进行测试后,我发现它normal
并control
执行大致相同,但withArguments
执行withEval
速度要慢得多。
为什么这些未执行的语句会对性能产生任何影响?既然他们从来没有被执行过,他们怎么可能有任何效果呢?