为什么const比var慢?

问题描述

当我发现constvar慢时,我正在测试JavaScript中constvar间的性能差异。

我写了一个脚本来计时constvar并进行比较。它测试const是否快1000倍。 const的速度只有大约13%。

function executionTime(code) {
  var t0 = performance.Now()
  code()
  var t1 = performance.Now()
  return t1 - t0
}

function test() {
    
  var results = [0,0] // one,two - Which one is faster?
    
  for (var i = 0; i < 999; i++) {
    var one = executionTime(function() {
      const x = 'x'
    })

    var two = executionTime(function() {
      var x = 'x'
    })
        
    if (one > two) {
      results[0]++
    } else {
      results[1]++
    }
  }
    
  return ((results[0] < results[1]) ? 'Const is slower': 'Var is slower') + ' - const was faster ' + results[0] + ' times,and var was faster ' + results[1] + ' times'
}

console.log(test())

所以,我的问题是,为什么使用var的变量声明要比使用const的变量声明快?

解决方法

按照评论中的建议,一旦我对jsbench进行了一些测试,我意识到性能可能会有所不同,并且我的计时方法存在缺陷。

JSBench:https://jsben.ch/eAiAk

因此,constvar之间没有实时差异。