一、首先栈中会产生全局执行上下文,然后全局执行上下文又分为创建阶段和执行阶段。
1、创建阶段:创建阶段包括词法环境和变量环境,其中词法环境包括环境记录、outer(对外层环境的引用)、this绑定。变量环境就是对var声明的变量绑定进行存储。
2、执行阶段:执行阶段会完成所有变量赋值,并最终执行代码。
二、当一个函数执行上下文时,栈中就会创建一个函数执行上下文。函数执行上下文也分为创建阶段和执行阶段,但是对于函数代码而言环境记录还包含一个arguments对象,这个对象包含传递给函数的索引和实参之间的映射,以及传递给该函数的实参的长度 。其余的与全局执行上下文大同小异。
let a = 20
const b = 30;
var c;
function multiply(e,f){
var g = 20;
return efg;
}
c = multiply(20,30)
console.log©
以上代码解析如下图:
log©
以上代码解析如下图: