博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【javaScript基础】执行上下文
阅读量:7014 次
发布时间:2019-06-28

本文共 714 字,大约阅读时间需要 2 分钟。

执行上下文栈

执行上下文栈,也就是环境栈。全局执行环境是最外围的一个执行环境。在Web浏览器中,全局环境被认为是window对象。

var a = 1; // 全局执行环境function fn () {};fn(); // fn执行环境复制代码

每个函数都有自己的执行环境。当进入一个执行环境时,该执行环境就会被推入一个环境栈中。而执行完当前执行环境,环境栈就会将当前执行环境弹出,把控制权返回给之前的执行环境。

在环境栈弹出某个执行环境时,该环境会被销毁,包括保存在其中所有定义的变量和函数。全局执行环境直到应用退出才会被销毁,例如关闭网页或浏览器。

执行环境也叫执行上下文环境,环境栈也就是执行上下文栈。

var a = 3; // 1.进入全局上下文环境var fn = function () {    var b = 5;    var y = bar(a + b); // 3.进入函数bar上下文环境    console.log(y);}var bar = function (c) {    return c;}fn(2); // 2.进入函数fn上下文环境复制代码

1、在上述代码中,首先进入全局上下文环境。执行fn函数时,压栈并进入fn上下文环境。

2、在fn函数中,执行bar函数,压栈并进入bar执行环境。此时fn没有被销毁,因为还没执行结束。

3、bar函数执行结束,出栈并销毁bar上下文环境。回到fn执行环境。

4、fn函数执行完毕,出栈并销毁fn上下文环境。把控制权返回给全局上下文环境。

转载于:https://juejin.im/post/5cdab45ef265da035948954c

你可能感兴趣的文章
React 服务端渲染如此轻松 从零开始构建前后端应用
查看>>
gradle 打包不同资源
查看>>
react-native创建android原生模块
查看>>
分享一个基于Node的名片设计网站
查看>>
Express + Ejs实现一个简单的WebServer
查看>>
40 行代码内实现一个 React.js
查看>>
关于5G被激烈讨论的那些争端和冲突
查看>>
AlphaZero进化论:从零开始,制霸所有棋类游戏
查看>>
.NET仓储模式高级用例
查看>>
如何理解 Laravel 的 Ioc 容器
查看>>
代码艺术家之JS
查看>>
Microsoft Azure Site Recovery (2) 配置虚拟机保护
查看>>
具有邮件功能的用户和联系人有什么区别?-Exchange2003系列之八
查看>>
ORACLE学习笔记--性能优化4
查看>>
毕啸南专栏 | 对话李开复:AI科学家的转型之路
查看>>
iphone: 可编辑的tableView Move&Delete
查看>>
linux shell “(())” 双括号运算符使用
查看>>
Asp.net Ajax Accordion控件的用法
查看>>
WMI使用小工具——WMI代码生成器(转)
查看>>
测试我用WLW在CSDN上的第一篇博客
查看>>