955

1、执行上下文存在于数据栈中。该栈保存代码运行是创建的所有上下文。

栈的特点是后进先出,每创建一个新的上下文,就会压入栈的顶部。当函数执行完成时,上下文从栈中弹出,控制过程到达栈中的下一个上下文。

2、当js引擎第一次触摸脚本时,它将创建一个全局的上下文,并将其压入栈中。

实例

//创建全局上下文,入上下文执行栈
varname='globalName';
functionF1(){
//第一阶段进行后
//这里this指向window
//name被创建,但是未赋值
//F2被创建并且引用
console.log(name);//那么这里应该是undefined
console.log(F2);//这里应该是F2
varname='f1ame';//再此之后,则name可以访问到

functionF2(argumentName){
console.log(argumentName);


//创建F2上下文,入上下文执行栈同理
F2(name);

//F2出栈
console.log(sex);//sex未创建,未赋值,且作用域链中也没有,所以报错sexnotdefined

//创建F1上下文,入上下文执行栈
F1();
//F1出栈
//全局上下文出栈
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。