1、明确变量、实参、形参、函数声明、函数表达式
var a;
test('2')
function test(b){
}
var d = functon e(){}
2、预编译
举例:
<script>
console.log(a) //functina(2);
var a = 100;
console.log(a); //100
function a(b){
console.log(c);//undi
console.log(d)//undi
var c = 100;
var d=300;
function e(){}
console.log(b)//2
}
</script>
步骤
先分析整个页面,然后逐一执行。此时会产生GO对象,Global Object对象。
GO对象
1、将所有变量作为GO的属性,值均为undifined
2、将函数声明也作为GO的属性,值为函数体。当函数声明和变量名相同时,覆盖第一步
执行函数时,产生AO对象,Actived Object对象。
1、将多有变量,形参作为AO的属性,值均为undifined
2、实参的值赋给形参
3、将函数声明作为AO的属性,值为函数体,同样若与变量相同则覆盖