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

因为无法确定这个代码会运行在怎样的环境上(windows,mac,linux),不同环境的cpu架构不同,不同cpu架构能执行的机器指令不同,所以无法确定机器指令,所以才转化为字节码。字节码可以跨平台,转化为机器指令后就可以运行了。因为lgnition解释器并不能直接认识s代码,需要先经过parse模块解析成抽象语法树。追问这里抛出一个问题,为什么不通过lgnition直接编译成字节码呢?去执行js代码,可以独立运行,也可以嵌入在C++应用程序中。简单说一下就是V8引擎是C++编写的开源引擎,用于。...
摘要由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,这个过程是
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值