相关疑难解决方法(0)

为什么在nodejs的for循环中让var慢于var?

我写了一个非常简单的基准:

console.time('var');
for (var i = 0; i < 100000000; i++) {}
console.timeEnd('var')


console.time('let');
for (let i = 0; i < 100000000; i++) {}
console.timeEnd('let')
Run Code Online (Sandbox Code Playgroud)

如果你正在运行Chrome,可以在这里试试(因为NodeJS和Chrome使用相同的JavaScript引擎,虽然版本通常略有不同):

// Since Node runs code in a function wrapper with a different
// `this` than global code, do that:
(function() {
  console.time('var');
  for (var i = 0; i < 100000000; i++) {}
  console.timeEnd('var')


  console.time('let');
  for (let i = 0; i < 100000000; i++) {}
  console.timeEnd('let')
}).call({});
Run Code Online (Sandbox Code Playgroud)

结果令我惊讶:

var: 89.162ms
let: 320.473ms
Run Code Online (Sandbox Code Playgroud)

我在Node 4.0.0 && …

javascript v8 node.js ecmascript-6

24
推荐指数
1
解决办法
2565
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1

node.js ×1

v8 ×1