图解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 相关文章推荐
一些实用的jQuery代码片段收集
Jul 12 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
js正则表达式中test,exec,match方法的区别说明
Jan 29 Javascript
AngularJS directive返回对象属性详解
Mar 28 Javascript
jquery validate表单验证插件
Sep 06 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
Feb 12 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
webpack打包多页面的方法
Nov 30 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
mpvue网易云短信接口实现小程序短信登录的示例代码
Apr 03 Javascript
vue祖孙组件之间的数据传递案例
Dec 07 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
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
用python实现的线程池实例代码
2018/01/06 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
Python底层封装实现方法详解
2020/01/22 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
房地产融资计划书
2014/01/10 职场文书
合伙协议书范本
2014/04/21 职场文书
2014组织生活会方案
2014/05/19 职场文书
社区服务标语
2014/07/01 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
党校毕业个人总结
2015/02/28 职场文书
论文答辩开场白大全
2015/05/27 职场文书
法定授权委托证明书
2015/06/18 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS