执行上下文详细图解-笔记

原文参考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语句会终止可执行代码的执行,将当前上下文弹出栈

原文地址:https://www.cnblogs.com/victory820/p/6882558.html