在nodejs和chrome中使用vs var性能

Bei*_*Dev 6 javascript performance google-chrome node.js

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

铬:

for循环使用VAR:24.058ms
for循环使用LET:8.402ms

的NodeJS:

用于循环的VAR:4.329ms
用于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");` 
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*oca 6

node.js 5.10附带的V8版本不支持 let绑定的临时死区.

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