执行上下文

错误之处,欢迎指正。


1. 概念简介

  1. 执行上下文
    是一个函数在运行之前创建的一块内存空间,这个空间有该函数运行所依赖的数据。
  2. 执行上下文栈
    是所有执行上下文组成的空间,javascript会始终执行栈顶的执行上下文,直到全部执行完毕。
  3. 全局执行上下文
    所有代码执行前,都必须有该环境。
  4. 函数执行上下文
    被执行的函数创建的一块内存空间。

2. 例题

console.log('1');
function a() {
    console.log('2');
    function b() {
        console.log('3');
    }
    b();
}
a();
console.log('4');
//输出结果1 2 3 4
  1. 首先全局执行上下文入栈。
  2. 然后从上而下,开始执行代码,首先执行console.log('1'),此时console.log('1')入栈,打印出了1,然后出栈。
  3. 继续向下执行,遇到了a的定义,继续向下执行,遇到了a的执行。
  4. 此时a的执行上下文入栈,首先执行console.log('2'),此时console.log('2')入栈,打印出了2,然后出栈。
  5. 继续向下执行,遇到了b的定义,继续向下执行,遇到了b的执行。
  6. 此时b的执行上下文入栈,首先执行console.log('3'),此时console.log('3')入栈,打印出了3,然后出栈。
  7. 此时a执行完毕,a的执行上下文出栈。
  8. 继续执行全局上下文,遇到了console.log('4'),此时console.log('4')入栈,打印出了4,然后出栈。
  9. 此时全局上下文执行完毕,全局上下文出栈,执行上下文栈为空,执行结束。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容