07 执行栈/调用栈(执行上下文栈)
调用栈定义
在执行上下文创建好后,JavaScript引擎会将执行上下文压入栈中,通常把这种用来管理执行上下文的栈称为执行上下文栈,又称调用栈/执行栈
有三种情况会创建执行上下文
- js执行 全局代码 时 – 编译全局代码,并创建全局执行上下文
- 调用一个 函数 时 – 编译函数,并创建函数执行上下文(函数执行结束后,当前函数执行上下文被销毁)
- eval函数 – 编译并创建执行上下文
调用函数的过程
从全局执行上下文中,取出add函数代码 –>
对代码进行编译,并创建该函数的执行上下文和可执行代码 –>
执行代码,输出结果
执行栈的变化
用代码展示下一段代码执行过程中执行栈的变化
var a = 2;
function add(b,c){
return b+c;
}
function addAll(b,c){
var d = 4;
result = add(b,c);
return a + result + d;
}
addAll(6, 3);