图解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 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
用js调用迅雷下载代码的二种方法
Apr 15 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
javascript生成随机颜色示例代码
May 05 Javascript
jquery 根据name名获取元素的value值
Feb 27 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
Aug 25 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
js+html5生成自动排列对话框实例
Oct 09 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 Javascript
原生JS封装vue Tab切换效果
Apr 28 Vue.js
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
BBS(php & mysql)完整版(一)
2006/10/09 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
Cookie 小记
2010/04/01 Javascript
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
javascript操作css属性
2013/12/30 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python实现简单字典树的方法
2016/04/29 Python
django框架如何集成celery进行开发
2017/05/24 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
保安拾金不昧表扬信
2014/01/15 职场文书
爱心捐书倡议书
2015/04/27 职场文书
2016银行求职自荐信
2016/01/28 职场文书
小学美术教学反思
2016/02/17 职场文书
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript
tomcat下部署jenkins的方法
2022/05/06 Servers