我在比較eval(code)
和new Function(code)
之間的執行時間。爲什麼新的函數(代碼)比直接執行相同的代碼更快?
我發現new Function(code)
比直接執行相同的代碼更快。
是什麼原因?
var start = new Date().getTime();
var test = ''; for (var i = 0; i < 1000000; ++i) { test += 'a'; }
var end = new Date().getTime();
console.log('Execution time: ' + (end - start));
// vs.
var start2 = new Date().getTime();
var f = new Function("var test = ''; for (var i = 0; i < 1000000; ++i) { test += 'a'; }");
f();
var end2 = new Date().getTime();
console.log('Execution time: ' + (end2 - start2));
@Sirko:我的不好。 :)但編輯後,第二個版本仍然似乎更快 – 2014-09-27 18:46:47
我相信這是因爲JavaScript是單線程 – Brendan 2014-09-27 19:08:05