function fn(a, b) {
console.log(a) //function a() {}
var a = 123
console.log(a) //123
console.log(c) //function c() {}
function a() {}
if (false) {
var d = 678
}
console.log(d) //undefined
console.log(b) //2
var b = function() {}
console.log(b) //function() {}
function c() {}
console.log(c) //function c() {}
}
fn(1, 2)
执行规则:1创建了ao对象
2找形参和变量的声明 作为ao对象的属性 值是undefind
3实参和形参相统一
4找函数声明 会覆盖变量的声明
// a: undefined 1 function a() {}
// b: undefined 2
// c: undefined function c() {}
// d: undefined