問問用 let 全面取代 var 的話 會性能上差異嗎?

自從之前曾經發生過 var 宣告的變量反而會出 BUG 之後
我本身現在都是用 let

但看了一下 github 上知名的專案似乎都仍然使用 var

所以想問問用 let 全面取代 var 的話 會有性能上差異嗎?
或者缺點?

阅读 3.2k
2 个回答

varlet主要是作用域不同,那可以使用现代浏览器都带有的performance api自己测一测。

var repeat = 1e8;

function benchmark(fn, fname, n){
    var start = performance.now();
    for(var i=0;i<n;i++){
        fn(i);
    }
    var end = performance.now();
    console.log(fname, parseFloat(end-start).toFixed(3), "ms");
}

benchmark(function(i){
    if(true){
        let a = i
    }
}, 'let-with-if', repeat);

benchmark(function(i){
    if(true){
        var a = i;
    }
}, 'var-with-if', repeat);

benchmark(function(i){
    if(true){}
    let a = i;
}, 'let-without-if', repeat);

benchmark(function(i){
    if(true){}
    var a = i;
}, 'var-without-if', repeat);

打开控制台,自己跑一跑就知道了。
在我的机器上:

let-with-if 60.645 ms
var-with-if 429.320 ms
let-without-if 430.505 ms
var-without-if 425.150 ms
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏