浅析一下V8引擎的原理到底是什么呢?

本文介绍了V8引擎的基本概念,它是C++编写的开源引擎,用于执行JavaScript代码。V8引擎通过词法分析和语法分析将源代码转换成AST抽象语法树,然后通过lgnition解释器解释成字节码。对于热点函数,turbofan将其编译成优化的机器码以提高性能。文章还讨论了为何先转成字节码而非直接生成机器码的原因,并鼓励读者深入学习。
摘要由CSDN通过智能技术生成

我们来看下官方对V8引擎的定义:

简单说一下就是:V8引擎是C++编写的开源引擎,用于Chrome和Node.js去执行js代码,可以独立运行,也可以嵌入在C++应用程序中

那V8引擎是如何去执行js代码?

  1. 首先javaScript源代码,会经过paser模块,被解析成AST抽象语法树(因为解释器并不认识javaScript代码)
    • 那在转成parse的这个过程中发生了什么呢?其实主要是词法分析和语法分析
      词法分析:会把代码分成一个个不能细分的单词(token),这些token组成tokens数组 如 const name="foo" 分别是 const、name、foo,这个过程是词法分析,按照单词的构成规则来拆分字符串成单词。我们来看下图
    • 语法分析:把 token 进行组装,生成 AST,这个过程是语法分析,按照不同的语法结构,来把一组单词组合成对象。我们来一起看下图
      这里附上AST语法解析官网链接 &#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值