执行上下文的概念
执行上下文:js 代码解析和执行所在的环境
执行上下文的类型:
1.全局执行执行上下文
2.函数执行上下文
3.Eval 执行上下文
执行上下文栈(执行栈 )ECStack
执行上下文生命周期
变量对象VO和活动对象AO
ES6 提出的词法环境和变量环境:
词法环境LexicalEnvironment,变量环境VariableEnvironment
词法环境保存 let cost,并且初始时为
用以下代码举例:
let a = 20;const b = 30;var c;function add(e, f) {var g = 20;function c(){}return e + f + g;}c = add(20, 30);
函数预编译时的词法环境和变量环境
GlobalExectionContent = {LexicalEnvironment: {EnvironmentRecord: {Type: "Object",a: <uninitialied>,b: <uninitialied>,add: <func>// 剩余标识符},Outer: null,},VariableEnvironment: {EnvironmentRecord: {Type: "Object",c: undefined,// 剩余标识符},Outer: null,}}FunctionExectionContent = {LexicalEnvironment: {EnvironmentRecord: {Type: "Declarative",arguments: {0: 20,1: 30,length: 2,},e: 20,f: 30,c: reference to function c(){}// 剩余标识符},Outer: GlobalLexicalEnvironment,},VariableEnvironment: {EnvironmentRecord: {Type: "Declarative",g: undefined,// 剩余标识符},Outer: GlobalLexicalEnvironment,}}
