执行上下文
Posted bingery
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行上下文相关的知识,希望对你有一定的参考价值。
执行上下文可以理解为当前代码的执行环境
javascript中的运行环境大概包括三种:
全局环境:JavaScript代码运行起来会首先进入该环境
函数环境:当函数被调用执行时,会进入当前函数中执行代码
eval(不建议使用,可忽略)
当代码在执行过程中,遇到以上三种情况,都会生成一个执行上下文,放入栈中,而处于栈顶的上下文执行完毕之后,就会自动出栈。
因此在一个JavaScript程序中,必定会产生多个执行上下文,JavaScript引擎会以栈的方式来处理它们,这个栈,我们称其为函数调用栈(call stack)。
栈底永远都是全局上下文,而栈顶就是当前正在执行的上下文。
全局上下文在浏览器窗口关闭后出栈。
详细了解了这个过程之后,我们就可以对执行上下文总结一些结论:
单线程
同步,只有栈顶的上下文处于执行,其他上下文需要等待
全局上下文只有一个,它在浏览器关闭时出栈
函数上下文没有个数限制
每次某个函数被调用,就会有个新的执行上下文为其创建,即使是调用的自身函数,也是如此。
作者:这波能反杀
链接:https://www.jianshu.com/p/a6d37c77e8db
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
以上是关于执行上下文的主要内容,如果未能解决你的问题,请参考以下文章