图解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 相关文章推荐
js实现ASP分页函数 HTML分页函数
Sep 22 Javascript
js不是基础的基础
Dec 24 Javascript
ExtJS的FieldSet的column列布局
Nov 20 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
判断JS对象是否拥有某种属性的两种方式
Dec 02 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
javascript自定义右键弹出菜单实现方法
May 25 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
Jan 12 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
JavaScript继承定义与用法实践分析
May 28 Javascript
Vue无限滑动周选择日期的组件的示例代码
Jul 18 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资源管理框架Assetic简介
2014/06/12 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python里大整数相乘相关技巧指南
2014/09/12 Python
浅谈Python单向链表的实现
2015/12/24 Python
对python 命令的-u参数详解
2018/12/03 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
python实现海螺图片的方法示例
2019/05/12 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
python日期相关操作实例小结
2019/06/24 Python
如何基于Python批量下载音乐
2019/11/11 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
python 绘制场景热力图的示例
2020/09/23 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
Why do we need Unit test
2013/01/03 面试题
质检部职责
2013/12/28 职场文书
校运会入场式解说词
2014/02/10 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
Python+tkinter实现高清图片保存
2022/03/13 Python