图解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 相关文章推荐
extjs grid取到数据而不显示的解决
Dec 29 Javascript
JS判断不能为空实例代码
Nov 26 Javascript
js中window.open的参数及注意注意事项
Jul 06 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
AngularJS标签页tab选项卡切换功能经典实例详解
May 16 Javascript
elementUI多选框反选的实现代码
Apr 03 Javascript
react native 仿微信聊天室实例代码
Sep 17 Javascript
解决vue项目router切换太慢问题
Jul 19 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 Javascript
JS+CSS实现炫酷光感效果
Sep 05 Javascript
小程序实现左滑删除的效果的实例代码
Oct 19 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中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php实现监听事件
2013/11/06 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
php给数组赋值的实例方法
2019/09/26 PHP
类之Prototype.js学习
2007/06/13 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
vue 实现的树形菜的实例代码
2018/03/19 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
node后端服务保活的实现
2019/11/10 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
python实现的一个p2p文件传输实例
2014/06/04 Python
python获取当前日期和时间的方法
2015/04/30 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
如何提高MySql的安全性
2014/06/19 面试题
2016年9月份红领巾广播稿
2015/12/21 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
python 用递归实现通用爬虫解析器
2021/04/16 Python
python中的装饰器该如何使用
2021/06/18 Python
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
Python办公自动化解决world文件批量转换
2021/09/15 Python