函数预编译发生在函数执行的前一刻。
1、创建AO对象
2、找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
3、将实参和形参统一
4、在函数体里面找函数声明,赋值与函数体
实例1
1 function fn(a) { 2 console.log(a); 3 var a = 23; 4 console.log(a); 5 6 function a() {} 7 console.log(a); 8 var b = function() {} 9 console.log(b); 10 11 function d() {} 12 } 13 fn(1)
实例2
1 function test(a,b){ 2 console.log(a); 3 console.log(b); 4 var b=234; 5 console.log(234); 6 a=123; 7 console.log(a); 8 function a(){} 9 var a; 10 b=234; 11 var b=funciton(){} 12 console.log(a); 13 console.log(b); 14 } 15 test(1);