Node.js和V8之间有什么关系?

时间:2017-03-06 01:19:05

标签: node.js v8

我一直在考虑这个问题,似乎无法找到答案。 Node.js和V8之间有什么关系?并且Node.js可以在没有V8的情况下工作吗?

3 个答案:

答案 0 :(得分:28)

  

Node.js和V8之间有什么关系?

V8是node.js中的Javascript引擎,用于解析和运行您的Javascript。 Chrome内部使用相同的V8引擎在Chrome浏览器中运行javascript。 Google开源了V8引擎,node.js的构建者使用它在node.js中运行Javascript。

  

Node.js可以在没有V8的情况下工作吗?

没有。没有V8,当前的node.js二进制文件无法工作。它没有Javascript引擎,因此无法运行显然使其无法运行的代码。 Node.js不能与任何其他Javascript引擎一起运行,事实上,node.js附带的所有本机代码绑定(例如fs模块或网络模块)都依赖于C ++和C ++之间的特定V8接口。的JavaScript。

微软努力允许Chakra Javascript引擎(Edge中的引擎)与node.js一起使用。他们在Chakra上构建一个V8垫片,以便期望与V8交谈的node.js二进制代码可以继续执行它正在做的事情,但实际上最终会与下面的Chakra引擎交谈。根据我的阅读,这特别针对已经拥有Chakra引擎并且没有运行V8引擎的微软平台,不过可能你也可以在Windows上使用它。

答案 1 :(得分:4)

通过使用node-chakracore项目,Node.js实际上可以在没有V8的情况下运行。目前正在努力减少V8和Node之间的紧密耦合,以便可以就地使用不同的JavaScript引擎。

答案 2 :(得分:1)

许多初学者认为nodejs是一种编程语言,但事实并非如此。在深入了解v8和nodejs之间的关系之前,让我们先了解一下V8到底是什么。

**

  • V8

** V8是一个JavaScript引擎。 javascript引擎用于将javascript代码解释为机器代码。有不同的JavaScript引擎,例如:Chrome浏览器为V8,IE浏览器为Chakra,网景为Spider Monkey等等。

**

  • nodejs和V8

** V8是一种浏览器引擎,而nodejs是在V8之上构建的,V8是一个运行时环境,可让javascript在服务器端运行。

Node.js是否可以在不使用V8的情况下工作?

是的,但是我从未将nodejs与其他JavaScript引擎一起使用。