欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端必考面试题 es6 let 和 var 的区别

程序员文章站 2022-03-04 13:02:45
...

1.let没有变量提升

变量提升 (当前作用域的上边 定义了 没有赋值 ,值为undefined)

 console.log(a);  //undefined
        var a = 10;
        console.log(b);
        let b = 10;

2.let不能重复命名

var c = 10;
        var c = 20;
        console.log(c);

        let c = 10;
        let c = 20;
        console.log(c);

3.块级作用域{ }

var是全局声明,let是块级作用的,只适用于当前代码块
var m = 5;

    if(m){
        var n = 100;
    }

    console.log(n);
    
    // 块级作用域{  }
    var m = 5;
    if(m){
        let n = 100;
    }
    console.log(n);

4.临时失效区 (暂时性死区) 当前作用域不允许同名的变量进来

用let声明的变量,不存在变量提升。而且要求必须 等let声明语句执行完之后,变量才能使用,不然会报Uncaught ReferenceError错误。

 var x = 10;
        function a(){
            console.log(x);
            let x = 20;
            // console.log(x);
        }
        a();