问答

V8执行JavaScript代码的疑惑

作者:admin 2021-05-06 我要评论

李兵老师在《浏览器工作原理与实践》中描述V8执行Js代码,使用了下面这个图片: 也就是说 源代码分析完就有AST和执行上下文 。 但是在《图解 Google V8》中描述V...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

李兵老师在《浏览器工作原理与实践》中描述V8执行Js代码,使用了下面这个图片:
image
也就是说源代码分析完就有AST和执行上下文
但是在《图解 Google V8》中描述V8执行Js代码,使用了下面这个图片:
image
这里又说源代码分析完就有AST和作用域
那究竟哪个是正确的?


执行上下文不是在函数执行时才产生吗?为什么源码分析完就有了,求解!

###

一个执行上下文主要包含三块信息:

  1. this变量;
  2. 函数内部局部变量(包含形参和argument变量);
  3. 作用域对象列表。

在代码被解释器执行前是无法确认this变量的,怎么能创建执行上下文呢。

###

李兵的图是错的。

执行上下文只会在函数执行时产生,而不会在代码解析时产生。

更详细更准确的解答,欢迎订阅我的书籍,包括了详细的 v8 过程,执行上下文过程

https://xiaozhuanlan.com/afed

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • grom设置json默认值

    grom设置json默认值

  • Vue路由报错,看着没问题

    Vue路由报错,看着没问题

  • 思否邮箱登录为什么区分大小写了呢?

    思否邮箱登录为什么区分大小写了呢?

  • 有没有能够直接上传markdown文件作为博

    有没有能够直接上传markdown文件作为博

腾讯云代理商
海外云服务器