图解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 相关文章推荐
如何判断图片地址是否失效
Feb 02 Javascript
js获取指定日期前后的日期代码
Aug 20 Javascript
jQuery对下拉框,单选框,多选框的操作
Feb 21 Javascript
JavaScript 事件绑定及深入
Apr 13 Javascript
网页挂马方式整理及详细介绍
Nov 03 Javascript
使用Promise链式调用解决多个异步回调的问题
Jan 15 Javascript
通俗解释JavaScript正则表达式快速记忆
Aug 23 Javascript
JavaScript设计模式之建造者模式实例教程
Jul 02 Javascript
详解react native页面间传递数据的几种方式
Nov 07 Javascript
详解微信小程序回到顶部的两种方式
May 09 Javascript
js实现图片跟随鼠标移动效果
Oct 16 Javascript
js前端如何写一个精确的倒计时代码
Oct 25 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中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
Python3实现定时任务的四种方式
2019/06/03 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
环境工程专业个人求职信
2013/12/05 职场文书
酒店总经理欢迎词
2014/01/08 职场文书
银行存款证明样本
2014/01/17 职场文书
保护环境标语
2014/06/09 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书