Node.js是JavaScript运行时环境还是EcmaScript环境?

Kor*_*gay 8 javascript node.js

根据https://nodejs.org/en/

Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时.

但是,根据这个答案,JavaScript是:

JavaScript = ECMAScript + DOM API;

并且Node.js运行时中没有DOM.(或者在那里?)还引用了本书:面向Web开发人员的专业JavaScript:

尽管JavaScript和ECMAScript通常是同义词,但JavaScript不仅仅是ECMA-262中定义的内容.实际上,完整的JavaScript实现由以下三个不同部分组成:

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

它支持我链接到的答案.

考虑到上述事实,说Node.js是ECMAScript运行时是不正确的?如果没有,如果我们想要分割Node.js并使其成为ECMAScript运行时而不是JavaScript运行时,我们需要删除(或添加?)?

Pet*_*son 9

JavaScript和ECMAScript之间的差异只是一个迂腐的差异,大多数人并不真正关心.从技术上讲,根据标准的官方语言名称是ECMAScript,但出于历史和方便的原因,人们几乎总是称它为"JavaScript".我从来没有见过任何自称为"ECMAScript开发者"的人.

据我所知,JavaScript甚至没有官方的正式定义.虽然ECMAScript具有规范性定义,其版本由各种规范正式定义,但"JavaScript"的含义基本上由人们如何使用它来定义.

出于这个原因,Node.js将自己宣传为JavaScript运行时.将它称为ECMAScript运行时可能更"技术上正确",但对于大多数人来说,以这种方式做广告会更加困惑.

  • @ War10ck这是真的,创建新技术的组织出于法律原因避免将它们命名为"JavaScript",但它仍然是一个在大多数情况下无关紧要的细节. (3认同)