图解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 相关文章推荐
IE8 引入跨站数据获取功能说明
Jul 22 Javascript
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
vue2.0获取自定义属性的值
Mar 28 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 Javascript
vue百度地图 + 定位的详解
May 13 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
Vue单文件组件开发实现过程详解
Jul 30 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数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
php判断目录存在的简单方法
2019/09/26 PHP
JavaScript 调试器简介
2009/02/21 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
python脚本设置系统时间的两种方法
2016/02/21 Python
Python中装饰器高级用法详解
2017/12/25 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
投标文件签署授权委托书范本
2014/10/12 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
2014年司机工作总结
2014/11/21 职场文书
报名委托书
2015/01/29 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript