首先要理解什么是预编译: 预编译就是在JS执行前的一瞬间创建一个AO对象,这个创建AO的过程叫做预编译. console.log(a) var a = 1; function c(b){ b = 10; console.log(b); console.log(a); var a = function(){}; function a(){}; } c(5); 借助上述代码中: 可以将预编译分为四步: 1.执行前一瞬间建立AO对象: AO{ a:undefined b:undefined } 首先所…