js 解析与执行过程:
一、全局:
1、预处理阶段 :
1、LexicalEnviroment === window {1、预处理 var | 2、function xxx //预处理申明的函数} // 注: 不预处理 函数表达式的方法 创建的 函数 : var g = function () ;
2、ECMA - 262 VariableEnvironment
2、执行阶段:
console.log(a); // 4、输入的是预处理阶段的 function a{return 6;}
function a(){
return document.documentElement.OffsetWidth; // 1、首先预处理function a()
}
function a(){
return 6; // 2、覆盖function a()
}
var a = 3; // 3、var 申明变量优先级低于 function,所以无效
a = 3; // 4、表达式a = 3,是执行阶段,覆盖为a = 3;
console.log(a); // 5、输出顺序执行的 a = 3;
二、函数:
1、每调用一次,产生一个LexicalEnviroment
2、先函数的参数
3、内部申明式函数
function test(a,b){ // LexicalEnviroment{ // a = function a; // b = 2; // } alert(a); alert(b); var b = 100; } function a(){}; test(1,2);
本文详细解析了JavaScript的执行过程,包括全局环境的预处理与执行阶段,以及函数调用时的Lexical Environment生成规则。重点阐述了变量声明、函数声明与函数表达式的处理顺序,以及函数参数和内部声明式函数的解析机制。

被折叠的 条评论
为什么被折叠?



