图解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 form表单序列化为对象的示例代码
Mar 05 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
JavaScript实现cookie的写入、读取、删除功能
Nov 05 Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
判断js的Array和Object的实现方法
Aug 29 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
利用node.js制作命令行工具方法教程(一)
Jun 22 Javascript
angular4中关于表单的校验示例
Oct 16 Javascript
微信小程序实现搜索框功能及踩过的坑
Jun 19 Javascript
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
php常用正则函数实例小结
2016/12/29 PHP
php常用字符函数实例小结
2016/12/29 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
nodejs 如何手动实现服务器
2018/08/20 NodeJs
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
Python sys.path详细介绍
2013/10/17 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
Python for i in range ()用法详解
2020/09/18 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
Python中内建模块collections如何使用
2020/05/27 Python
Java的for语句中break, continue和return的区别
2013/12/19 面试题
老师对学生的评语
2014/04/18 职场文书
初中英语课后反思
2014/04/25 职场文书
好学生评语大全
2014/05/05 职场文书
保护环境的标语
2014/06/09 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
基层工作经历证明
2015/06/19 职场文书