7.31 签到,js 全局预处理笔记
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);