zoukankan      html  css  js  c++  java
  • 聊聊var let const

    1.var声明的变量默认挂载在window对象下,而let和const声明的变量会自动创建块级作用域下
      

    var a = 1;
    console.log(window.a) //1
    let a = 1;
    console.log(window.a) //undefined
    const a = 1;
    console.log(window.a) //undefined
    实际上let,const声明的变量挂载在scope下的script下,通过谷歌浏览器下的调试可以看出

    2.var 声明的变量可以变量提升,let,const不会
    var a = 1;
    function test(){
      console.log(a)
    var a = 2;
    }
    test()//undefined
    在test函数作用域中由于变量提升a虽然在var a=2之前输出但是仍然是声明了只是还未赋值,但是let和const就不一样
    var a = 1;
    function test(){
      console.log(a)
    let a = 2;
    }
    test()//Uncaught ReferenceError
    3.const 声明的变量的特殊性:
       1.一旦声明必须赋值,不能使用null占位
    2.如果声明的是基本数据类型值不能修改,如果声明的是复合数据类型,可以修改其属性
    const b //Uncaught SyntaxError: Missing initializer in const declaration
    const n = null //无法获取变量
    const obj ={a:1,b:2}
    obj.a=2//2


  • 相关阅读:
    python之元组
    python之dict
    python之list
    python之str字符串
    python之for循环
    Python的基本语法2
    Python的基本语法1
    初识python
    JS获取当天是周几
    EXCLE导入数据库
  • 原文地址:https://www.cnblogs.com/myspecialzone/p/11385263.html
Copyright © 2011-2022 走看看