执行上下文和执行上下文栈

1)执行上下文概念:

当控制器转到ECMAScript可执行代码的时候,就会进入到一个执行上下文.

2)可执行代码包括:

全局代码例如加载外部的js文件或者本地"<script></script>"标签内的代码。全局代码不包括任何function体内的代码。 这个是默认的代码运行环境,一旦代码被载入,引擎最先进入的就是全局代码的环境

函数代码任何一个函数体内的代码,但是需要注意的是,具体的函数体内的代码是不包括内部函数的代码

Eval代码eval内部的代码

3)执行上下文的创建过程

1>创建阶段当函数被调用,但是未执行任何其内部代码之前

建立作用域链   ,  确定this的值,  建立变量,  函数,  arguments对象,  参数

2>代码执行阶段

变量复制   ,   函数引用,   执行其它代码

4)执行上下文栈

js引擎创建执行上下文栈来管理执行上下文

5)执行上下文栈过程:

当浏览器首次载入脚本的时候,它将默认进入全局执行上下文所以初始化的时候首先就会向执行上下文栈压入一个全局执行上下文,并且只有当整个应用程序结束的时候,执行上下文栈才会被清空,所以执行上下文栈最底部永远有个全局执行上下文。每次调用一个函数将会创建一个新的执行上下文,而且新创建的一个执行上下文会被添加到执行栈的顶部.浏览器总会执行位于栈顶的执行上下文,一旦当前上下文的函数执行结束,它将被从栈顶弹出,并将控制权交给之前的执行上下文,这样,栈中的上下文就会被依次执行并且弹出栈,直到回到全局的上下文。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值