图解javascript作用域链

 更新时间:2019年05月27日 09:56:35   作者:白菜帮子  
当代码在window onload事件被触发,且sub函数被执行的时候会发生什么事情呢?下面我们来一起了解一下

先来一段简单的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.匿名函数出栈

整体图解如下:

如有错误之处,欢迎批评指正。谢谢

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • js parsefloat parseint 转换函数

    js parsefloat parseint 转换函数

    JavaScript提供了3个显式的类型转换函数,分别是eval()、parseInt()和parseFloat()。
    2010-01-01
  • javascript 实例详解循环用法

    javascript 实例详解循环用法

    假如您需要运行代码多次,且每次使用不同的值,那么循环(loop)相当方便使用。本篇文章通过几个实例来带你掌握循环的用法
    2021-11-11
  • JavaScript onclick 和 click 的区别详解

    JavaScript onclick 和 click 的区别详解

    onclick是绑定事件,click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,本片文章讲的很详细,大家可以看看,希望能够给你带来帮助
    2021-10-10
  • 浅谈javascript中的constructor

    浅谈javascript中的constructor

    下面小编就为大家带来一篇浅谈javascript中的constructor。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Ajax的概述与实现过程

    Ajax的概述与实现过程

    Ajax是Asynchronous JavaScript XML的简写,不是一门新技术,而是对现有技术的综合利用。本文详细介绍了Ajax的概述与具体实现方法。有需要的朋友可以看下,希望对你有所帮助
    2016-11-11
  • 关于JavaScript与HTML的交互事件

    关于JavaScript与HTML的交互事件

    本篇文章小编将为大家介绍,关于JavaScript与HTML的交互事件,有需要的朋友可以参考一下
    2013-04-04
  • 贴一个在Mozilla中常用的Javascript代码

    贴一个在Mozilla中常用的Javascript代码

    贴一个在Mozilla中常用的Javascript代码...
    2007-01-01
  • JavaScript中把数字转换为字符串的程序代码

    JavaScript中把数字转换为字符串的程序代码

    本篇文章是对JavaScript中把数字转换为字符串的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • javascript常用方法汇总

    javascript常用方法汇总

    本文给大家汇总了一些自己整理的在项目中经常能够用到的javascript小方法,基本都是短小精悍型,方便大家快速开发。
    2014-12-12
  • Javascript 数组排序详解

    Javascript 数组排序详解

    JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。今天我们就来详细探讨下sort()方法
    2014-10-10

最新评论