1.三种执行上下文
- 全局执行上下文:执行全局代码时会编译代码并创建全局执行上下文,整个页面的生存周期内只有一份
- 函数执行上下文:调用一个函数的时候会编译代码并创建函数执行上下文,函数执行结束之后销魂
- eval执行上下文
2.调用栈
- 栈:先进后出的的数据结构
- 调用栈:利用栈这种结构来管理执行上下文,在执行上下文创建后JavaScript引擎将执行上下文压入栈,执行完出栈
3.栈溢出
调用栈是有大小的,当入栈的执行上下文超过一定输目,就会发生栈溢出
function division (a,b) {
return division(a,b)
}
console.log(division(1,2)) // 栈溢出