JavaScript和ECMAScript有什么区别?

无人久伴 提交于 2020-02-26 13:56:54

ECMAScript和JavaScript有什么区别? 根据我的推论,ECMAScript是标准,JavaScript是实现。 这个对吗?


#1楼

我知道这是一个旧帖子,但希望这会对某人有所帮助。

在1990年代,不同版本的js开始出现,例如netscape的javascript和Microsoft的js脚本。 因此,ecmascript被引入作为标准。 但是ecmascript只是javascript的一部分,它指定了它的核心语法,类型,对象等。可能解释了diff中javascript的不一致实现。 浏览器

参考-Wrox(适用于Web开发人员的专业Javascript)


#2楼

以我的理解,ECMAScript是“理论”或“规范”,而Javascript是“实践”或“实施”。


#3楼

现有的答案很好地解释了重点。

要点是ECMAScript是一种纯粹的抽象语言,没有任何特定于领域的扩展,它本身是没有用的。 该规范仅定义语言及其核心对象。

JavaScript,ActionScript和其他方言向其添加了特定于域的库,因此您可以将其用于有意义的事情。

ECMAScript引擎很多,其中一些是开源的,另一些是专有的。 您可以将它们链接到您的程序中,然后将本机函数添加到全局对象中,以便您的程序可编写脚本。 尽管最常在浏览器中使用它们。


#4楼

JavaScript = ECMAScript + DOM + BOM

  • ECMAScript®语言规范定义了用于创建和编辑对象,数组,数字等的所有逻辑。

  • DOM(d ocumentöbject 中号 Odel等)使得能够使用HTML / XML文档进行通信(例如document.getElementById('id'); )。

  • BOM(B rowseröbject 中号 Odel等)是浏览器对象(例如位置对象,历史对象,表格元件)的层次结构。

JavaScript命名历史:

Mocha►LiveScript►JavaScript►(JS的一部分产生)ECMA-262►ECMAScript►JavaScript(由ECMAScript + DOM + BOM组成)


#5楼

我认为有一点历史课是应该的。

JavaScript最初称为Mocha,后来更改为Livescript,但最终成为JavaScript。

请务必注意,JavaScript早于ECMAscript,历史记录会告诉您原因。

从一开始,JavaScript就从Java衍生了它的名称,最初,Brendan Eich(JS的创建者)被要求为Netscape开发一种类似于Java的语言。

然而,Eich认为Java的所有规则都过于复杂,因此着手创建一种甚至初学者也可以编写代码的简单语言。这在诸如放宽对分号的要求等方面很明显。

语言完成后,Netscape的营销团队要求Sun允许他们将JavaScript命名为营销特技,因此为什么大多数从未使用过JavaScript的人都认为JavaScript与Java有关。

在浏览器中发布JavaScript大约一两年之后,微软的IE就采用了该语言,并开始制作自己的实现,例如JScript。 同时,IE主导了市场,而Netscape必须关闭其项目不久。

在Netscape崩溃之前,他们决定启动一个指导JavaScript路径的标准,称为ECMAScript。

ECMAScript有几个版本,1999年他们发布了最后一个版本(ECMAScript 3),然后在接下来的10年中进入休眠状态。 在这10年中,微软占据了主导地位,但与此同时,他们并没有提高产品质量,因此Firefox诞生了(由Eich领导),并诞生了其他许多浏览器,例如Chrome,Opera。

ECMAScript在2009年发布了第5版(第4版已被放弃),它具有严格模式等功能。 从那时起,ECMAScript获得了巨大的发展动力,并计划在从现在起的几个月内发布其第六版,这是迄今为止的最大变化。

您可以在http://kangax.github.io/es5-compat-table/es6/上使用ECMAScript 6的功能列表,以及浏览器支持。 您甚至可以像使用CoffeeScript一样开始编写Ecmascript 6,并使用编译器将其编译为Ecmascript 5。

ECMAScript是语言还是JavaScript是方言是有争议的,但并不重要。 如果您继续这样思考,可能会使您感到困惑。 那里没有可以运行ECMAScript的编译器,我相信JavaScript被认为是实现称为ECMAScript的标准的语言。

还有其他实现ECMAScript的引人注目的语言,例如ActionScript(用于Flash)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!