码迷,mamicode.com
首页 > 其他好文 > 详细

执行上下文

时间:2019-08-05 13:48:56      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:asc   出栈   个数   函数   获得   其他   链接   www   script   

执行上下文可以理解为当前代码的执行环境

JavaScript中的运行环境大概包括三种:
全局环境:JavaScript代码运行起来会首先进入该环境
函数环境:当函数被调用执行时,会进入当前函数中执行代码
eval(不建议使用,可忽略)

当代码在执行过程中,遇到以上三种情况,都会生成一个执行上下文,放入栈中,而处于栈顶的上下文执行完毕之后,就会自动出栈。

因此在一个JavaScript程序中,必定会产生多个执行上下文,JavaScript引擎会以栈的方式来处理它们,这个栈,我们称其为函数调用栈(call stack)。
栈底永远都是全局上下文,而栈顶就是当前正在执行的上下文。

全局上下文在浏览器窗口关闭后出栈。

详细了解了这个过程之后,我们就可以对执行上下文总结一些结论:

单线程
同步,只有栈顶的上下文处于执行,其他上下文需要等待
全局上下文只有一个,它在浏览器关闭时出栈
函数上下文没有个数限制
每次某个函数被调用,就会有个新的执行上下文为其创建,即使是调用的自身函数,也是如此。

作者:这波能反杀
链接:https://www.jianshu.com/p/a6d37c77e8db
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

执行上下文

标签:asc   出栈   个数   函数   获得   其他   链接   www   script   

原文地址:https://www.cnblogs.com/bingery/p/11302462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!