![8c2cb2490268f4730a427026164e5037.png](https://i-blog.csdnimg.cn/blog_migrate/236ebc94da15206e71b82a540b1f0c41.png)
一、执行上下文的概念
当JS
引擎解析到可执行代码片段(通常是函数调用阶段)的时候,就会先做一些执行前的准备工作,这个 “准备工作”,就叫做 "执行上下文(execution context 简称 EC)"
二、执行上下文的类型
全局执行上下文
只有一个,浏览器中的全局对象就是 window 对象,this 指向这个全局对象。
函数执行上下文
存在无数个,只有在函数被调用的时候才会被创建,每次调用函数都会创建一个新的执行上下文。
eval函数执行上下文
指的是运行在 eval 函数中的代码,很少用而且不建议使用。
三、执行上下文栈
作用
用于管理执行在代码执行期间创建的执行上下文
特点
1.单线程,在主进程上运行
2.同步执行,从上往下按顺序执行
3.全局上下文只有一个,浏览器关闭时会被弹出栈
4.函数的执行上下文没有数目限制
5.函数每被调用一次,都会产生一个新的执行上下文环境
每当有函数被调用时,引擎都会为该函数创建一