文章链接

全局上下文

      // 进入执行上下文时,首先会处理函数声明,其次会处理变量声明,
      // 如果变量名称跟已经声明的形式参数或函数相同,则变量声明不会覆盖已经存在的这类属性。
      console.log({ auTest })

      var auTest = 'auTest'

      function auTest() {}
    
      console.log(1, foo)

      function foo() {}

      var foo = 'foo'
      
      // 这段说明变量赋值是可以改变值的=====声明归声明、赋值归赋值、搞清楚
      console.log(2, foo)
    
      // let、const 会报错,不会有上面那种乱七八糟的声明覆盖问题
      console.log(car)
      let car = 'car'