什么是执行上下文和执行栈?
执行上下文: 当前JavaScript代码解析和执行时候的环境就是执行上下文
执行栈: 执行栈就是一个存储JavaScript代码执行上下文的栈
以全局执行上下文为例:
JavaScript代码载入后
==> (创建阶段)创建一个全局对象(window)
==> 全局上下入执行栈
==> (执行阶段)全局上下文this指向window
==> 全局上下出执行栈
以函数执行上下文为例:
JavaScript代码载入后
==> (创建阶段)创建一个全局对象(window)
==> 全局上下入执行栈
==> (创建阶段)创建一个或多个函数对象
==> 函数上下入执行栈
==> (执行阶段)执行一个或多个函数
==> 函数上下出执行栈
==> (执行阶段)全局上下文this指向window
==> 全局上下出执行栈