javascript – 让我们在nodejs和chrome中使用vs var

当我在chrome和nodejs中测试以下代码时,我得到以下信息:

铬:

for loop with VAR: 24.058ms
for loop with LET: 8.402ms

的NodeJS:

for loop with VAR: 4.329ms
for loop with LET: 8.727ms

根据我的理解,由于块作用域LET在chrome中更快.但有人可以帮助我理解为什么它在NodeJS中是相反的?
或者我错过了什么?

"use strict";
console.time("for loop with VAR");
for (var i = 0; i < 1000000; i += 1) {
 // Do nothing
}
console.timeEnd("for loop with VAR");

console.time("for loop with LET");
for (let i = 0; i < 1000000; i += 1) {
 // Do nothing
}
console.timeEnd("for loop with LET");` 

PS:不确定这不是测试性能的理想方式.

最佳答案
V8版本附带node.js 5.10 don’t supporttemporal dead zone for let bindings.

相反,Chrome正在使用支持它的V8 5.0 …但由于vm尚未针对TDZ进行优化,因此现在它的速度较慢是正常的(我记得读过那些声称用let替换var的人使得代码慢了约27% ).

转载注明原文:javascript – 让我们在nodejs和chrome中使用vs var - 代码日志