美文网首页
JS变量声明 - var,let 和 const

JS变量声明 - var,let 和 const

作者: 恒星的背影 | 来源:发表于2018-09-08 11:48 被阅读0次

    var

    a = 1 会做什么?
    如果a不存在则声明a,如果a已经存在则给a赋值


    下面的代码显示了声明提升的存在:

    function fn() {
      if(true) {
        console.log(a)
      } else {
        var a = 2
      }
    }
    fn()    // undefined
    

    由于声明提升的存在,建议变量声明都放在函数的最开始


    let

    let 声明的变量只在 let 所在的代码块内有效
    在声明之前使用直接报错 undefined,声明之前的区域称为『临时死区』
    至此,js 的变量声明回到一个比较正常的状态,重复声明报错,在声明之前使用也报错


    const

    const 声明的变量只有一次赋值机会,并且必须在声明的同时赋值
    const 保证的是变量对应的内存地址里的内容不变,对于简单类型的数据,值就是内容,对于复合类型的数据(对象和数组),内容是实际的数据地址
    如果想保证对象不变,可以使用 Object.freeze(),同时需要递归处理对象的属性

    相关文章

      网友评论

          本文标题:JS变量声明 - var,let 和 const

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