一、GO: 1、找变量 2、找函数声明 3、执行 二、AO: 1、寻找形参和变量声明 2、实参赋值给形参 3、找函数声明,赋值 4、执行 三、示例 var a = 2 function foo(a){ function a (){} a = 1 console.log(a); b = 0 var b = 1 function b (){} console.log(b); } foo(6) console.log(a); 手写GO、AO预编译过程: