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