<script>
//第9课
// 预编译
// 函数声明整体提升;
// 变量 声明提升;
// 1.任何变量未经声明就赋值,此变量为全局所有;
// 2.任何声明的全局变量归window所有
// window就是全局的域
// 函数预编译过程:
// 1、创建AO对象 activetion object
// 2、找形参和变量声明,将变量和形参名作为Ao属性名,值为undefind;
// 3、将实参值和形参统一;
// 4、在函数里找函数声明(不是函数表达式),值为 函数体;
// 全局预编译过程
// 1、创建go对象(windows) global object
// 2、找变量声明,将变量作为GO属性名,值为undefind;
// 3、找函数声明(不是函数表达式),值为 函数体;
//区别 :全局没有参数!
//作业
// GO{
// foo undefined;
// bar function;
// }
function bar(){
return foo;
foo = 10;
function foo(){
}
var foo = 11;
}
// // AO {
// // foo undefined--> function foo(){}--->
// // }
console.log(bar());
// 结果输出 function foo(){}
// Go{
// foo undefiend
// bar function bar(){}
// }
// ao{
// foo undefined-->function foo--> 10-->11
// }
console.log(bar());
function bar(){
foo =10;
function foo(){
}
var foo = 11;
return foo;
}
// 结果为11
</script>