ECMAScript和JavaScript有什么区别?根据我的推论,ECMAScript是标准,JavaScript是实现。它是否正确?
JavaScript和ECMAScript有什么区别?
现有的答案很好地解释了重点。
要点是ECMAScript是一种纯粹的抽象语言,没有任何特定于领域的扩展,它本身是没有用的。该规范仅定义语言及其核心对象。
JavaScript,ActionScript和其他方言向其添加了特定于域的库,因此您可以将其用于有意义的事情。
ECMAScript引擎有很多,其中一些是开源的,其他是专有的。您可以将它们链接到您的程序中,然后将本机函数添加到全局对象中,以便您的程序可编写脚本。尽管最常在浏览器中使用它们。
我怀疑我们是否曾经使用过“ ECMAScript”一词,如果不是因为名称“ JavaScript”归Sun所有。出于所有目的和目的,该语言是JavaScript。您不去书店寻找ECMAScript书籍,对吗?
说“ JavaScript”是实现有点太简单了。JScript是Microsoft的实现。
Javascript是原始名称,旨在利用Java的流行性。ECMA是负责监督最终制定的标准的标准机构,因此名称大致相同。
实现还有其他名称,例如V8或Rhino等。
JavaScript 是 ECMAScript语言。
ECMAScript 不一定是 JavaScript。
ECMAScript是JavaScrip t 的标准,请查看MDN的以下语句:
的JavaScript
JavaScript(JS)是具有一流功能的轻量级解释或JIT编译的编程语言。尽管它是最著名的网页脚本语言,但许多非浏览器环境也使用它,例如node.js,Apache CouchDB和Adobe Acrobat。JavaScript是基于原型的,多范式的动态语言,支持面向对象,命令式和声明式(例如,函数式编程)样式。了解有关JavaScript的更多信息。
ECMAScript
JavaScript的标准是ECMAScript。截至2012年,所有现代浏览器均完全支持ECMAScript 5.1。较旧的浏览器至少支持ECMAScript3。2015年6月17日,ECMA International发布了ECMAScript的第六个主要版本,正式称为ECMAScript 2015,最初被称为ECMAScript 6或ES6。从那时起,ECMAScript标准每年发布一次。本文档引用了最新的草稿版本,当前为ECMAScript 2018。
欲了解更多信息,请访问这里
以我的理解,ECMAScript是“理论”或“规范”,而Javascript是“实践”或“实施”。
我知道这是一个旧帖子,但希望这会对某人有所帮助。
在1990年代,不同版本的js开始出现,就像netscape的javascript和Microsoft的js脚本一样。因此,ecmascript被引入作为标准。但是ecmascript只是javascript的一部分,它指定了它的核心语法,类型,对象等。可能解释了diff中javascript的不一致实现。浏览器
参考-Wrox(适用于Web开发人员的专业Javascript)
各种JavaScript版本都是ECMAScript标准的实现。
从技术上讲,ECMAScript是每个人都在使用和实现的语言-这是多年前Netscape和Microsoft坐下来并试图标准化JavaScript(Netscape的脚本语言)和JScript(Microsoft的脚本)时创建的规范。
随后,所有这些引擎表面上都实现了ECMAScript,但是JavaScript(名称)现在由于传统的命名原因以及Mozilla作为其各种非标准扩展(他们希望能够真正“版本化”)的营销术语而徘徊。 )
我认为有一点历史课是应该的。
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崩溃之前,他们决定启动一个名为ECMAScript的标准来指导JavaScript的发展。
ECMAScript有几个版本,1999年他们发布了最后一个版本(ECMAScript 3),然后在接下来的10年中进入休眠状态。在这10年中,Microsoft主导了整个场景,但与此同时,他们并没有提高产品质量,因此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)
ECMAScript是该语言,而JavaScript,JScript甚至ActionScript 3被称为“方言”。维基百科对此有所启示。
JavaScript是围绕ECMAScript标准形成的一种语言分支。我相信ECMA是欧洲计算机制造商协会,而不是真的有用或没有其他意义。
不要忘记,围绕ECMA Script标准形成的另一种流行语言是ActionScript,它在Adobe Flash / Flex中使用。