第一步:语言分析 将JavaScript中所有需要执行的代码全面检测一遍,目的是为了排除低级的语法错误;检测到错误后,一个一个的抛出错误。 第二步:预编译 发生时间:代码执行之前进行的操作: ① 变量声明提升; ② 函数声明提升; ③ 如果函数执行了: a. 创建一个AO; b. 将函数体中所有声明的变量和形参提升到作用域最顶端,并且赋值为undefined; c. 将形参和实参进行统一; d. 在函数体中找函数声明,赋值为函数本体; e. 若函数名与变量名重复,那么变量覆盖函数本体。 第三步:解析执行代码 执行完毕。