let与var的性能

let vs var performance

本文关键字:性能 var let      更新时间:2023-09-26

我一直在读关于ES6 Let关键字与现有var关键字的文章。

我有几个问题。我知道"范围界定"是let和var之间的唯一区别,但它对全局意味着什么?

function allyIlliterate() {
    //tuce is *not* visible out here
    for( let tuce = 0; tuce < 5; tuce++ ) {
        //tuce is only visible in here (and in the for() parentheses)
    };
    //tuce is *not* visible out here
};
function byE40() {
    //nish *is* visible out here
    for( var nish = 0; nish < 5; nish++ ) {
        //nish is visible to the whole function
    };
    //nish *is* visible out here
};

现在我的问题:

  1. let比var有内存(/性能)优势吗?

  2. 除了浏览器支持之外,我应该使用let over var的原因是什么?

  3. 在我的代码工作流程中开始使用let now over var是否安全?

谢谢,R

let比node.js中的var慢得多。版本v6.3.0。有时这是戏剧性的。如果用let替换var,下面的代码大约慢三倍:

function collatz() {
    var maxsteps = 0;
    var maxval = 0;
    var x = 1;
    var n;
    var steps;
    while (x < 1000000) {
        steps = 0;
        n = x;
        while (n > 1) {
            if (n & 1)
                n = 3*n + 1;
            else
                n = n / 2;
            steps += 1;
        }
        if (steps > maxsteps) {
            maxsteps = steps;
            maxval = x;
        }
        x += 1;
    }
    console.log(maxval + ' - ' + maxsteps + ' steps');
}
collatz();