美文网首页
var let const 的区别

var let const 的区别

作者: my木子 | 来源:发表于2021-05-11 08:23 被阅读0次

    var

    • 存在变量提升
    • 可重复声明,声明后可修改值
    • 一般不支持块级作用域(函数支持)
    • 支持循环

    let

    • 有暂时死区,没有变量提升
    • 不可重复声明,声明后可修改值
    • 支持块级作用域
    • 支持循环

    const

    • 有暂时死区,没有变量提升
    • 不可重复声明
    • 声明的基本数据类型不可改,引用类型可改属性,不可只声明变量而不赋值
    • 支持块级作用域
    • 不支持循环
    var let const的区别

    修改 const 声明的值

        // 对象
        const obj = { a: 1 };
        obj.a = 2;
    
        // 数组
        const arr = [1, 2];
        arr[0] = 2;
    

    变量提升

        var fun = function () {
          console.log(1);
        };
        function fun() {
          console.log(2);
        };
        fun(); // 1
    

    暂时性死区(TEMPORAL DEAD ZONE)

    • ES6 对变量声明的规定中,在 let / const 用函数默认变量时,未完全初始化前的区域,称为暂存死区。

    关键字声明后的报错

    • TDZ 报错:Uncaught ReferenceError: Cannot access 'a' before initialization
    console.log(a); // undefined
    var a = 1;
    
    console.log(a); // 报错
    let a = 1;
    
    console.log(b); // 报错
    const b = 1;
    

    相关文章

      网友评论

          本文标题:var let const 的区别

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