3
'use strict'
function test() {
let t = Date.now();
let p = 0;
for (let i = 0; i < 100000000; i++) {
p += i % 2;
}
console.log(p)
console.log('test: ', Date.now() - t);
}
function test1() {
var t = Date.now();
var p = 0;
for (var i = 0; i < 100000000; i++) {
p += i % 2;
}
console.log(p)
console.log('test1 : ', Date.now() - t);
}
test();
test1();
在Chrome運行上面的代碼,爲什麼測試1比試驗快。是我們的錯還是我的錯?
50000000
test: 1146
50000000
test1 : 148
在Firefox中,我沒有看到這種行爲。這兩種功能都可以使用大約100毫秒。 – Pointy
我懷疑任何人,但Chrome開發人員可以回答這個問題,並且我懷疑理解Chrome實現範圍內部的這種特殊怪癖的用處(但我承認我可能是錯的)。 – apsillers
'let'強制創建附加範圍。創造這個可能會浪費一些時間。 –