美文网首页
为什么要使用let和const,而不使用var?

为什么要使用let和const,而不使用var?

作者: BigDipper | 来源:发表于2020-04-24 10:28 被阅读0次

    在ES6中,建议使用letconst来定义变量。引入letconst的目的就是创建了块作用域。

    在ES5中只有全局作用域和函数作用域,这就导致了很多问题。
    比如,用var定义的变量会出现变量提升的情况:

    function t() {
        console.log(a); // 变量a提升到函数顶部,输出为undefined
    
        var a = 123;
    }
    
    t();
    

    再比如,在for循环中定义的i,在循环结束后仍可访问:

    for (var i = 0; i < 5; i++) {
        console.log('在for循环内i的值为:', i);
    }
    
    console.log('循环结束了,i的值为:', i); // 循环结束了,但i仍然可以访问,此时i处于全局作用域内
    

    还有很多类似的或者令人意想不到的情况,这都会让人感到困惑,阻碍项目的开发。所以,对自己好一点,var能不用就不用,最好是忘了它,只用letconst来定义变量。

    相关文章

      网友评论

          本文标题:为什么要使用let和const,而不使用var?

          本文链接:https://www.haomeiwen.com/subject/zdexwhtx.html