ECMAScript和JavaScript有什么区别?根据我的推论,ECMAScript是标准,JavaScript是实现。它是否正确?
我认为有一点历史课是应该的。
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年中进入hibernate状态。在这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)