1.预解析
console.log(a)
var a = 1
function a() {
console.log(2)
}
console.log(a)
var a = 3
console.log(a)
function a() {
console.log(4)
}
console.log(a)

// 预解析过程
// var a
// function a() {console.log(2)}
// function a() {console.log(4)}
// undefined function a() {} 3 function a() {} 错误答案

// function a() {console.log(4)} 1 3 3
// 为什么会是1 3 3 呢?因为函数体都被提升了

预解析的过程其实就是把var 和 funciton 进行提升
要注意的是:
1.如果var和function定义的变量重名,取函数
2.函数和函数重名,取最后一个函数