Nodejs使用的是javascript还是ECMAScript?

时允
  • 4.9k

一个完整的JavaScript实现是由以下3个不同部分组成的:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。

Nodejs和couchdb中没有DOM和BOM,那么它运行的还算是javascript吗?

回复
阅读 8.3k
5 个回答
justjavac
  • 47.7k

一个完整的JavaScript实现是由以下3个不同部分组成的

从哪儿看的?

文档对象模型(DOM)

DOM 是一种操作 xml 文档的方式,不仅仅是 js,其它语言都有,而且 api 也相当一致。这个 nodejs 也有,因为 nodejs 也可以在服务器端操作 xml。

浏览器对象模型(BOM)

既然是浏览器对象模型,那么服务器端的 js 肯定就没有了。


一个完整的浏览器端JavaScript实现是由以下3个不同部分组成的:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。

或者

浏览器端上面的JavaScript实现是由以下3个不同部分组成的……

Yofine
  • 813

node 组成 :

ECMAScript
CommonJS(fs.tcp…)

node中没有浏览器中的BOM和DOM

而且node对js的支持,是依赖V8引擎实现的,在最新的V0.11.9中,已经可以启动harmony模式来支持ES6

所以如果说的严谨一些, node使用的是ECMAScript, 不知楼主对这个说法是否满意

楼主这段话应该是红皮书上的,说的是JavaScript的实现,这个没有问题,因为本来JS就是为了浏览器设计出来的,实现的话要依赖浏览器,即要包含BOM和DOM

ECMAScript只是文档标准,任何具体的二进制环境中都不包括之。
v8引擎是该标准的其中一个实现,chrome、node中包含的是v8,不是ECMAScript。
还有IE中也有实现ECMAScript的部分,至于实现了其中的多少比率,靠你去挖掘了

Node.js使用的是V8,所以你的问题应该是V8用的是es还是js

个人觉得是这样的 ECMAScript是一种语言规范,而javascript是实现这种语言规范的语言之一。而javascript的适用场景不同决定它的不同类型内置对象和api.

举个例子来说,javascript在浏览器环境下时的全局global是window,并且挂载了文档对象模型和浏览器对象模型。

而javascript在nodejs的执行环境下除了ECMAscript规范所要求的之外,有nodejs专属的对象及api.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏