执行上下文详细图解-笔记
原文参考http://mp.weixin.qq.com/s/hRE3HzeSxxok1bLI8vH1yw
js中的运行环境简单分类
全局环境,执行js代码就会进入该环境
函数环境,函数被调用就会进入该环境
eval谁调用此方法,this就指向该对象
在栈中,栈底永远都是全局上下文,栈顶是正在执行的上下文
单线程中,
同步执行,栈顶上下文处于执行,其他等待
全局上下文只有一个,在浏览器关闭时出栈。
执行上下文个数没限制
函数被调用就有新上下文创建
// 全局上下文进栈
var color = 'blue';
function changeColor(){
var anotherColor = 'red';
function swapColors(){
var tempColor = anotherColor;
antherColor = color;
color = tempColor;
}
// swapColors进栈
swapColors();
// swapColors出栈
}
// changeColor进栈
changeColor();
// changeColor出栈
函数中执行到return语句会终止可执行代码的执行,将当前上下文弹出栈
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步