?預(yù)編譯發(fā)生在執(zhí)行之前
1;初始化全局對象?空對象? Global?Objec?
2:全局作用與下?函數(shù)聲明提升。
Global?Objet?{
????<function>?foo:?undefined
?}
3:全局作用有下?變量聲明提升
?Global?Objet?{
????<function>?foo:?undefined,
?????????????a:?undefined,
?????????????b:undefined,
????????????c:undefined
}
4:?給提升的函數(shù)賦值?function
Global?Objet?{
????<function>?foo:?<function>,
????????a:?undefined,
????????b:undefined,
????????c:undefined
}
函數(shù)執(zhí)行前準(zhǔn)備
1:初始化Active?Objec?(AO)?對象
Active?Object{}
2:?提升形參
Active?Object{
????????a:?undefined,
????????b:undefinec
}
3:提升函數(shù)
Active?Object{
????????a:?undefined,
????????b:undefined,
????????bar:undefined??
}
4:提升變量
Active?Object{
????????a:?undefined,
????????b:undefined,
????????bar:undefined,
????????lt:undefined
}
5?給提升的函數(shù)賦值?<function>
Active?Object{
????a:?undefined,
? ? b:undefined,
????bar:<function>,?'undefined'?--->??<function>
????lt:undefined
}
6:?形參實(shí)參相統(tǒng)一
Active?Object{
????a:?1,????undefined--->1
????b:2,?????undefined--->2
????bar:<function>,?
????lt:undefined
}