美文网首页
浅谈let,const和var的异同点

浅谈let,const和var的异同点

作者: super静_jingjing | 来源:发表于2018-12-03 16:04 被阅读0次

    let、const和var三者都是申明一个变量的,let和const是ES6新增的。在一个作用域中,用var申明的变量会被提升到该作用域的最前面,但是let和const不会。
    var 展示:

    function test(){
        if(true){
            var a = 1;
        }
        console.log(a); // 打印出1。在if的作用域中申明的a被提升出来了
    }
    test();
    

    最有名的面试题:for循环中定时器的闭包

    for(var i = 0; i < 5; i++) {
      setTimeout(() => {
        console.log(i) //5, 5, 5, 5, 5
      }, 0)
    }
    console.log(i) //5 i跳出循环体污染外部函数
    

    let展示:

    function test(){
        if(true){
            var a = 1;
        }
        console.log(a); //  报错: a is not defined
    }
    test();
    

    在var使用的for循环中定时器的闭包面试题,用let的时候,外层的i也会报错
    const和let一样,都是在当前申明的块中有效,不能像var一样提升作用域;
    但是const是不能修改的,let可以被反复修改;

    相关文章

      网友评论

          本文标题:浅谈let,const和var的异同点

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