一:first-blood:任何程序执行的第一步总是会先检查有没有语法错误,如果有,则直接抛出语法错误,直接跳出, 二:second-blood:预编译,预编译呢会有四个执行过程,1:创建执行期上下文(AO对象====Activation Object),2:为AO对象添加属性(形参和已经申明的变量),并且其值为undefind,3:统一实参值和形参,4:找函数申明(不包括表达式赋值var a=function(){}),并且赋值,5, 执行函数本身.⚠️,全局中会创建GA对象,没有第三步骤,…