一个完整的JavaScript实现是由以下3个不同部分组成的:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。
Nodejs和couchdb中没有DOM和BOM,那么它运行的还算是javascript吗?
黄舟2017-04-10 13:12:01
一个完整的JavaScript实现是由以下3个不同部分组成的
从哪儿看的?
文档对象模型(DOM)
DOM 是一种操作 xml 文档的方式,不仅仅是 js,其它语言都有,而且 api 也相当一致。这个 nodejs 也有,因为 nodejs 也可以在服务器端操作 xml。
浏览器对象模型(BOM)
既然是浏览器对象模型,那么服务器端的 js 肯定就没有了。
一个完整的浏览器端JavaScript实现是由以下3个不同部分组成的:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。
或者
浏览器端上面的JavaScript实现是由以下3个不同部分组成的……
PHP中文网2017-04-10 13:12:01
ECMAScript
CommonJS(fs.tcp…)
node中没有浏览器中的BOM和DOM
而且node对js的支持,是依赖V8引擎实现的,在最新的V0.11.9中,已经可以启动harmony模式来支持ES6
所以如果说的严谨一些, node使用的是ECMAScript, 不知楼主对这个说法是否满意
楼主这段话应该是红皮书上的,说的是JavaScript的实现,这个没有问题,因为本来JS就是为了浏览器设计出来的,实现的话要依赖浏览器,即要包含BOM和DOM
PHP中文网2017-04-10 13:12:01
ECMAScript只是文档标准,任何具体的二进制环境中都不包括之。
v8引擎是该标准的其中一个实现,chrome、node中包含的是v8,不是ECMAScript。
还有IE中也有实现ECMAScript的部分,至于实现了其中的多少比率,靠你去挖掘了
PHP中文网2017-04-10 13:12:01
个人觉得是这样的 ECMAScript是一种语言规范,而javascript是实现这种语言规范的语言之一。而javascript的适用场景不同决定它的不同类型内置对象和api.
举个例子来说,javascript在浏览器环境下时的全局global是window,并且挂载了文档对象模型和浏览器对象模型。
而javascript在nodejs的执行环境下除了ECMAscript规范所要求的之外,有nodejs专属的对象及api.