图解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 相关文章推荐
实现JavaScript中继承的三种方式
Oct 16 Javascript
jquery实现excel导出的方法
Apr 04 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
ES6实现的遍历目录函数示例
Apr 07 Javascript
Angular2生命周期钩子函数的详细介绍
Jul 10 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
Jan 24 Javascript
详解vue-cli3多页应用改造
Jun 04 Javascript
微信小程序tabBar 返回tabBar不刷新页面
Jul 25 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
SMARTY学习手记
2007/01/04 PHP
php获取参数的几种方法总结
2014/02/18 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
js实现抽奖功能
2020/11/24 Javascript
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
python实现可逆简单的加密算法
2019/03/22 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
优秀学生事迹材料
2014/02/08 职场文书
给上级领导的感谢信
2015/01/22 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
离婚纠纷代理词
2015/05/23 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
如何在Python中创建二叉树
2021/03/30 Python
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL