【问题标题】:Use d8 functions in Nodejs在 Nodejs 中使用 d8 函数
【发布时间】:2020-06-19 09:41:23
【问题描述】:

今天我决定第一次使用 JavaScript 参加在线编程竞赛,但它给我带来了麻烦!我本地的Nodejs版本是v10.16.1,但是网上评委用的是V8 JavaScript引擎。

直到今天我还认为 Nodejs 使用 V8 作为 JavaScript 引擎;但是很遗憾,我今天不能在 Nodejs 中使用 d8 的 readlineprint 内置函数。

那么 Nodejs 默认支持 V8 吗?

  • 如果不是,我如何将 d8 与 Nodejs 一起安装以及如何使用它?
  • 如果是,我该如何启用它?

任何回应将不胜感激......

编辑:据我所知,那个在线裁判并没有嵌入V8;它只是使用 d8 作为它的环境,它是 V8 的外壳(接口),readlineprint 是 d8(不是 V8)的内置函数。

编辑This 问题与在线竞赛中使用 JavaScript 有关。还有this 一个对如何使用d8很有帮助。

【问题讨论】:

  • Node.js 使用 V8,但 printreadline 不是 V8 的内置函数。
  • 您需要在脚本顶部添加const readline = require('readline');,才能使用它。也许比赛平台会为您做到这一点
  • d8 !== V8 ...
  • @mrzrm V8 - JS 引擎,d8 - V8 的 JS shell,Node.js v8 - Node.js 的版本
  • D8 基本上是 V8 开发人员提供的示例程序,用于展示如何将 V8 用作库。例如,Google Chrome 不包含 D8 代码,即使它使用 V8,所以 Google Chrome 没有 printreadline。 Node.js 做了同样的事情,他们编写了 D8 的竞争对手/替代方案,并且在 Node 中不包含任何 D8 代码,而是选择创建函数 console.logreadlinefs 模块

标签: javascript node.js command-line stdin v8


【解决方案1】:

V8 是一个 Javascript 引擎。它没有自己的用户界面,因此无法单独运行 Javascript。这是给开发者的。开发人员将 V8 链接到他们的程序中,以便能够从他们的程序中运行 Javascript。

Chrome 浏览器使用 V8。

Nodejs 使用 V8。

D8 (a programming shell) 使用 V8。

所以,如果你想用 V8 运行 Javascript,你必须运行其中一个内置了 V8 的程序。

那么 Nodejs 默认支持 V8 吗?

是的,V8 内置在 Nodejs 中。

如果不是,我如何在 Nodejs 旁边安装 V8 以及如何使用它? (我更喜欢预建和二进制版本)

它已经内置了。

如果是,我该如何启用它?

Nodejs环境默认开启。

直到今天我还认为 Nodejs 使用 V8 作为 JavaScript 引擎;但是很遗憾,我今天不能在 Nodejs 中使用 V8 的 readline 和 print 内置函数。

您必须在 node.js 中使用 readline 显示您的特定代码和问题。 readline 内置在 node.js 中,不是 V8 的一部分。 documentation for something like readline 非常清楚地展示了如何使用它的示例。您必须首先加载 readline 模块,然后使用该模块中的方法。

今天我决定第一次使用 JavaScript 参加在线编程竞赛,但它给我带来了麻烦!我本地的Nodejs版本是v10.16.1,但是网上评委用的是V8 JavaScript引擎。

在线比赛不太可能直接使用 V8。他们可能使用的是本身链接了 V8 的编程环境。您需要更具体地了解编程竞赛使用的编程环境。它是否使用特定版本的 Nodejs?还是像 D8 这样的编程外壳?还是浏览器?

【讨论】:

  • "开发人员将 V8 链接到他们的程序中,以便能够从他们的程序中运行 Javascript。" 他们是如何做到的?
  • @mrzrm - 你开始here。然后,您可以将embedding V8 上的文档读入您的程序。 V8 有一个 C++ 编程接口,因此您将使用它直接与它交互并将其嵌入到您的程序中。
  • 您必须在 node.js 中使用 readline 来显示您的特定代码和问题。 readline 内置在 node.js 中,不是 V8 的一部分。 我看到 here d8 不需要它。所以我以为是内置的V8
  • 是否使用特定版本的 Nodejs?还是像 D8 这样的编程外壳?还是浏览器? 他们使用 D8 作为他们的环境。
  • @mrzrm - 我所看到的一切都表明你自己构建了 D8。仅供参考,您的问题本身根本没有提到 D8。我知道您在 cmets 中提到过,但如果有人只是在阅读您的问题,他们会感到困惑,因为您不直接运行 V8。
猜你喜欢
  • 2020-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多