图解javascript作用域链


Posted in Javascript onMay 27, 2019

先来一段简单的javascript代码:

window.onload=function(){
function sub(a,b){
return a-b;
}
var result=sub(10,5);
}

这段代码中的执行环境已经数清楚了,可是执行环境只是代码在预编译过程中javascript引擎所做的事情,当代码在window onload事件被触发,且sub函数被执行的时候会发生什么事情呢?

1.javascript引擎会在页面加载脚本被执行时为每个函数创建一个作用域(执行上下文)及作用域链。

2.javascript引擎在产生这些作用域后,会创建一个堆栈。

3.将onload对应的匿名函数压栈

4.将sub函数压栈

5.sub函数执行完毕出栈

6.匿名函数出栈

整体图解如下:

图解javascript作用域链

如有错误之处,欢迎批评指正。谢谢

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
预加载css或javascript的js代码
Apr 23 Javascript
学习JavaScript设计模式之装饰者模式
Jan 19 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
Oct 28 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
Dec 15 Javascript
vue实现前进刷新后退不刷新效果
Jan 26 Javascript
详解javascript中的变量提升和函数提升
May 24 Javascript
Vue SPA单页应用首屏优化实践
Jun 28 Javascript
jQuery实现高级检索功能
May 28 jQuery
VUE 动态组件的应用案例分析
Dec 02 Javascript
JS+CSS实现3D切割轮播图
Mar 21 Javascript
Vue3 响应式侦听与计算的实现
Nov 11 Javascript
node.js命令行教程图文详解
May 27 #Javascript
详解JavaScript中的坐标和距离
May 27 #Javascript
优化Vue项目编译文件大小的方法步骤
May 27 #Javascript
了解JavaScript表单操作和表单域
May 27 #Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 #Javascript
使用JS判断页面是首次被加载还是刷新
May 26 #Javascript
Node.js 多进程处理CPU密集任务的实现
May 26 #Javascript
You might like
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
浅析php原型模式
2014/11/25 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
javascript跨域刷新实现代码
2011/01/01 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
Python深入学习之内存管理
2014/08/31 Python
浅谈Python中的闭包
2015/07/08 Python
python连接mysql实例分享
2016/10/09 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
python中pika模块问题的深入探究
2018/10/13 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Python for循环及基础用法详解
2019/11/08 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
python不同系统中打开方法
2020/06/23 Python
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
行政文员岗位职责
2013/11/08 职场文书
教师演讲稿范文
2014/01/08 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
销售团队口号大全
2014/06/06 职场文书
社区母亲节活动总结
2015/02/10 职场文书
检讨书范文
2019/04/16 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
Redis三种集群模式详解
2021/10/05 Redis