【发布时间】:2017-03-06 01:19:04
【问题描述】:
我一直在思考这个问题,但似乎无法找到答案。 Node.js 和 V8 有什么关系? Node.js 可以在没有 V8 的情况下工作吗?
【问题讨论】:
我一直在思考这个问题,但似乎无法找到答案。 Node.js 和 V8 有什么关系? Node.js 可以在没有 V8 的情况下工作吗?
【问题讨论】:
Node.js 和 V8 有什么关系?
V8 是 node.js 内部的 Javascript 引擎,用于解析和运行您的 Javascript。 Chrome 内部使用相同的 V8 引擎在 Chrome 浏览器中运行 javascript。 Google 开源了 V8 引擎,node.js 的构建者使用它在 node.js 中运行 Javascript。
Node.js 可以在没有 V8 的情况下工作吗?
没有。当前的 node.js 二进制文件在没有 V8 的情况下无法工作。它将没有 Javascript 引擎,因此无法运行明显使其无法运行的代码。 Node.js 并非旨在与任何其他 Javascript 引擎一起运行,事实上,node.js 附带的所有本机代码绑定(例如 fs 模块或 net 模块)都依赖于 C++ 和Javascript。
Microsoft 正在努力让 Chakra Javascript 引擎(即 Edge 中的引擎)与 node.js 一起使用。他们在 Chakra 之上构建了一个 V8 shim,以便希望与 V8 对话的 node.js 二进制代码可以继续执行它正在做的事情,但实际上最终会与下面的 Chakra 引擎对话。从我读到的内容来看,这特别针对已经具有 Chakra 引擎但没有在其上运行 V8 引擎的 Microsoft 平台,尽管您可能也可以在 Windows 上使用它。
【讨论】:
通过使用node-chakracore 项目,Node.js 实际上在某种程度上可以在没有 V8 的情况下运行。正在努力减少 V8 和 Node 之间的紧密耦合,以便可以就地使用不同的 JavaScript 引擎。
【讨论】:
许多初学者认为 nodejs 是一种编程语言,但事实并非如此。在深入了解 v8 和 nodejs 之间的关系之前,让我们先看看 V8 到底是什么。
V8 是一个 JavaScript 引擎。 javascript引擎用于将javascript代码解释为机器代码。有不同的 JavaScript 引擎,例如:Chrome 的 V8、IE 的 Chakra、Netscape 的蜘蛛猴等。
V8 是一个浏览器引擎,而 nodejs 是建立在 V8 之上的,V8 是一个运行时环境,让 javascript 能够在服务器端运行。
是的,但我从未将 nodejs 与其他 javascript 引擎一起使用。
【讨论】: