Js运行过程解析

标题 Js运行过程解析

当代码运行时,JavaScript 引擎首先创建一个全局执行上下文来执行全局代码。全局执行上下文又分为创建和执行两个阶段,在创建阶段会有一个词法环境,词法环境里包括环境记录、Outer和this,在本段代码中,扫描代码时会在环境记录里声明a,b两个未初始化的值,会初始化c为undefined,会声明函数multiply,Outher因为是全局执行上下文里,没有外层环境可以引用,所以为空,this绑定在这里指的是全局变量。创建完成后就是执行阶段在本阶段 JS 引擎再次扫描代码,完成所有变量赋值给a赋20给b赋30,c由于由var声明且未赋值,仍为undefined。最后行代码中调用了函数,所以往执行栈中加入函数执行上下文,创建阶段声明g,e,f, Outer为全局词法环境,this为全局对象,然后是函数执行上下文的执行阶段,给e,f,g 赋值,并把efg的结果赋值给c,返回c,然后,全局词法环境就被更新了。之后,全局代码完成执行,程序结束。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值