鍍金池/ 問答/HTML/ 問問用 let 全面取代 var 的話 會性能上差異嗎?

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

自從之前曾經(jīng)發(fā)生過 var 宣告的變量反而會出 BUG 之後
我本身現(xiàn)在都是用 let

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

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

回答
編輯回答
選擇

varlet主要是作用域不同,那可以使用現(xiàn)代瀏覽器都帶有的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);

打開控制臺,自己跑一跑就知道了。
在我的機(jī)器上:

let-with-if 60.645 ms
var-with-if 429.320 ms
let-without-if 430.505 ms
var-without-if 425.150 ms
2017年2月18日 05:16
編輯回答
練命

在知乎看過一篇文章挺好的:我用了兩個月的時間才理解let

2018年8月26日 14:24