图解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 相关文章推荐
通过ifame指向的页面高度调整iframe的高度
Oct 05 Javascript
Jquery进度条插件 Progress Bar小问题解决
Jul 12 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
Mar 14 Javascript
JS实现的4种数字千位符格式化方法分享
Mar 02 Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 Javascript
浅谈js 闭包引起的内存泄露问题
Jun 22 Javascript
angular.bind使用心得
Oct 26 Javascript
javascript实现Email邮件显示与删除功能
Nov 21 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
Feb 22 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
JavaScript实现班级抽签小程序
May 19 Javascript
5种 JavaScript 方式实现数组扁平化
Oct 05 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 采集程序 常用函数
2008/12/18 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
PHP加密扩展库Mcrypt安装和实例
2013/11/10 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
phpStorm2020 注册码
2020/09/17 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
python批量下载图片的三种方法
2013/04/22 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
python 实现控制鼠标键盘
2020/11/27 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
物业管理毕业生的自我评价
2014/02/17 职场文书
高中教师考核方案
2014/05/18 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
python lambda 表达式形式分析
2022/04/03 Python