js的解析与执行过程

全局中的解析和执行过程

预处理:创建一个词法环境(LexicalEnvironment,在后面简写为LE),扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处理阶段的词法环境中去。

// 全局环境
var a = 1;
var b;
c = 3;  // 不会预处理
function d() {}
var e = function () {}

LE{        //此时的LE相当于window
    a:undefined
    b:undefined
    没有c
    d:对函数的一个引用
    e:undefined
}

函数中的解析和执行过程

函数中的解析和执行过程和全局中的解析和执行过程区别不是很大,函数中有个arguments需要注意一下

function f(a,b){
    alert(a);
    alert(b);

    var b = 100;
    function a(){}
}
f(1,2);

LE {
    b:2
    a:指向函数的引用
    arguments2
}

results for ""

    No results matching ""