为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_花开花谢_0 2019-02-25 17:20:29
自從之前曾經發生過 var 宣告的變量反而會出 BUG 之後我本身現在都是用 let但看了一下 github 上知名的專案似乎都仍然使用 var所以想問問用 let 全面取代 var 的話 會有性能上差異嗎?或者缺點?
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

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


查看完整回答
反对 回复 2019-03-04
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

在知乎看过一篇文章挺好的:我用了两个月的时间才理解let


查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 713 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号