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出栈 //全局上下文出栈原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容