什么是调用栈?
调用栈是JavaScript维护出来的一种栈结构,作用就是用来分类管理代码的执行上下文的。 存储顺序是按照代码中函数的调用顺序。 通常把这种用来管理执行上下文的栈称为执行上下文栈,又称调用栈。
理解调用栈
现在我们看下面这串代码:
var a = 2
function p2(b,c){return b+c
}
function p1(b,c){var d = 10result = p2(b,c)returna+result+d //2+9+10
}
console.log(p1(3,6));//21
以上代码中调用栈的执行过程是怎么样的呢?
1.首先创建全局执行上下文
- 首先是将全局执行上下文中的a赋值为2
- 而后是p1的调用,创建p1的执行上下文并压入栈中
- 创建好p1的执行上下文后执行代码。
- 形参和实参统一,变量赋值d=10
- result = p2