// 进入执行上下文时,首先会处理函数声明,其次会处理变量声明,
// 如果变量名称跟已经声明的形式参数或函数相同,则变量声明不会覆盖已经存在的这类属性。
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'