读书笔记:执行上下文(Execution Context)

文章地址:https://github.com/leonardoms...


浏览器怎么执行代码?

JS引擎怎么执行代码?

JS引擎会创建一个全局执行上下文【Global Execution Context】,一个全局内存【Global Memory】(又叫做全局作用域【Global Scope】全局变量环境【Global Variable Environment】),如果有函数调用,还需要创建调用栈【Call Stack】局部执行上下文【Local Execution Context】(本地执行上下文)

展开一下。

执行上下文是一个环境,JS代码会在里面被解析和执行。分为全局执行上下文函数执行上下文Eval函数执行上下文

全局执行上下文,引擎默认的,没有在函数中的代码会被放在此上下文。包含两个阶段:创建和执行。全创建阶段会创建一个全局对象(global或window)和this变量,为变量和函数分配内存,hoisting【为声明的变量赋初始值undefined】。

函数执行上下文,当函数被调用时被创建。创建阶段会创建arguments对象,this对象,为变量和函数分配内存,hoisting【为声明的变量赋初始值undefined】

Eval函数执行上下文,无需理解,因为我们几乎用不到。

执行上下文栈,也可以叫做调用栈?

图片描述

通过执行上下文。JS引擎可以解析和运行复杂的代码。

参考资料:
https://www.valentinog.com/bl...
https://tc39.github.io/ecma26...
https://tylermcginnis.com/jav...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值