问题描述
当我发现const
比var
慢时,我正在测试JavaScript中const
和var
之间的性能差异。
我写了一个脚本来计时const
和var
并进行比较。它测试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
因此,const
和var
之间没有实时差异。