Answers:
ECMAScript是该语言,而JavaScript,JScript甚至ActionScript 3被称为“方言”。维基百科对此有所启示。
我认为有一点历史课是应该的。
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)
ECMAScript = ES:
ECMAScript是脚本语言的标准。
像Javascript这样的语言都基于ECMAScript标准。
ECMA Standard基于多种原始技术,其中最著名的是JavaScript(Netscape)和JScript(Microsoft)。
ECMA是指欧洲计算机制造商协会
JavaScript = JS:
JavaScript是ECMAScript标准的最流行的实现。
Javascript的核心功能基于ECMAScript标准,但是Javascript还具有ECMA规范/标准中没有的其他附加功能。
ActionScript和JScript是实现ECMAScript的其他语言。
JavaScript已提交给ECMA进行标准化,但是由于商标名称Javascript的问题,该标准被称为ECMAScript。
每个浏览器都有一个JavaScript解释器。
ES5 = ECMAScript 5:
ES5是ECMAScript的版本(旧/当前版本)。
ES5是您今天在浏览器中知道并使用的JavaScript。
ES5不需要构建步骤(编译器)就可以将其转换为可以在当今的浏览器中运行的内容。
ECMAScript版本5已于2009年12月完成,所有主要浏览器(Chrome,Safari,Firefox和IE)的最新版本均已实现版本5。
5.1版已于2011年6月完成。
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015是ECMAScript的版本(新功能/未来功能)。
正式应使用名称ES2015代替ES6。
ES6将解决TypeScript和CoffeeScript中解决的许多核心语言缺陷。
ES6是JavaScript的下一个迭代,但不能在当今的浏览器中运行。
有很多编译器将导出ES5以在浏览器中运行。
BabelJS:
BabelJS是最受欢迎的编译器,可将新的JavaScript ES6转换为旧的JavaScript ES5。
BabelJS使当今编写下一代JavaScript(意味着ES2015)成为可能。
BabelJS只需获取ES2015文件并将其转换为ES5文件。
当前的浏览器版本现在可以理解新的JavaScript代码(ES2015),即使它们尚不支持它。
TypeScript和CoffeeScript:
两者都在ES5之上提供语法糖,然后再编译为ES5兼容的JavaScript。
您编写TypeScript或CoffeeScript,然后编译器将其转换为ES5 JavaScript。
JavaScript = ECMAScript + DOM + BOM;
ECMAScript®语言规范定义了用于创建和编辑对象,数组,数字等的所有逻辑。
DOM(d ocument ö bject 中号 Odel等)使得能够使用HTML / XML文档(例如通信document.getElementById('id');
)。
BOM(乙 rowser ö bject 中号 Odel等)是浏览器对象(例如位置对象,历史对象,表格元件)的层次结构。
JavaScript命名历史:
Mocha►LiveScript►JavaScript►(产生了JS的一部分)ECMA-262►ECMAScript►JavaScript(由ECMAScript + DOM + BOM组成)
JavaScript = ECMAScript + DOM API;
吗?
JavaScript = ECMAScript + DOM API;
仅基于JavaScript所组成的全部商定的书面术语。
从技术上讲,ECMAScript是每个人都在使用和实现的语言-这是多年前Netscape和Microsoft坐下来并试图标准化JavaScript(Netscape的脚本语言)和JScript(Microsoft的脚本)时创建的规范。
随后,所有这些引擎表面上都实现了ECMAScript,但是JavaScript(名称)现在由于传统的命名原因以及Mozilla作为其各种非标准扩展(他们希望能够真正“版本化”)的营销术语而徘徊。 )
什么是ECMAScript即ES?
ECMAScript是脚本语言的标准,而Javascript语言基于ECMAScript标准。
Javascript与ECMAScript完全一样吗?
JavaScript = ECMAScript + DOM API;
DOM API如: document.getElementById('id');
其他语言是否使用ECMAScript标准?
为什么叫ECMAScript?
现有答案很好地解释了重点。
要点是ECMAScript是一种纯粹的抽象语言,没有任何特定于领域的扩展,它本身是无用的。该规范仅定义语言及其核心对象。
JavaScript,ActionScript和其他方言向其添加了特定于域的库,因此您可以将其用于有意义的事情。
ECMAScript引擎很多,其中一些是开源的,另一些是专有的。您可以将它们链接到您的程序中,然后将本机函数添加到全局对象中,以便您的程序可编写脚本。尽管最常在浏览器中使用它们。
ECMAScript是JavaScrip t 的标准,请查看MDN的以下语句:
JavaScript(JS)是具有一流功能的轻量级解释型或JIT编译的编程语言。尽管它是最著名的网页脚本语言,但许多非浏览器环境也使用它,例如node.js,Apache CouchDB和Adobe Acrobat。JavaScript是一种基于原型的,多范式的动态语言,支持面向对象,命令式和声明式(例如,函数式编程)样式。了解有关JavaScript的更多信息。
JavaScript的标准是ECMAScript。截至2012年,所有现代浏览器均完全支持ECMAScript 5.1。较旧的浏览器至少支持ECMAScript3。2015年6月17日,ECMA International发布了ECMAScript的第六个主要版本,正式称为ECMAScript 2015,最初被称为ECMAScript 6或ES6。从那时起,ECMAScript标准每年发布一次。本文档引用了最新的草稿版本,当前为ECMAScript 2018。
欲了解更多信息,请访问这里
这是我的发现:
JavaScript: David Flanagan编写的权威指南提供了非常简洁的解释:
JavaScript是在Web早期由Netscape创建的,从技术上讲,“ JavaScript”是Sun Microsystems(现为Oracle)许可的商标,用于描述Netscape(现为Mozilla)的语言实现。Netscape向ECMA提交了用于标准化的语言,由于商标问题,该语言的标准化版本使用了笨拙的名称“ ECMAScript”。出于相同的商标原因,该语言的Microsoft版本正式称为“ JScript”。实际上,几乎每个人都将Java语言称为JavaScript。
微软的博客文章似乎同意弗拉纳根的说法。
ECMAScript是我们都知道和喜欢的JavaScript语言的正式名称。
..这让我想到了所有出现JavaScript
在这(再次微软)基准柱必须被替换ECMASCript
。实际上,他们似乎ECMAScript
只在此,更新和更多技术文档页面中使用时要小心。
w3schools.com似乎同意上述定义:
JavaScript由Brendan Eich于1995年发明,并于1997年成为ECMA标准。ECMA-262是该标准的正式名称。ECMAScript是该语言的正式名称。
这里的关键是:语言的正式名称。
如果查看Mozilla的JavaScript版本页面,将会遇到以下语句:
不推荐使用。语言功能的显式版本控制和选择加入是特定于Mozilla的,并且正在被删除。Firefox 4是最后一个引用JavaScript版本(1.8.5)的版本。有了新的ECMA标准,现在在ECMA-262版(例如ECMAScript 2015)中经常提到JavaScript语言功能及其初始定义。
当您看到最新的发行说明时,将始终看到对ECMAScript标准的引用,例如:
ES2015 Symbol.toStringTag属性已实现(错误1114580)。
ES2015 TypedArray.prototype.toString()和TypedArray.prototype.toLocaleString()方法已实现(错误1121938)。
Mozilla Web Docs也有一个页面,解释ECMAScript和JavaScript之间的区别:
但是,Web浏览器上下文中理解的总括术语“ JavaScript”包含几个非常不同的元素。其中一种是核心语言(ECMAScript),另一种是Web API的集合,包括DOM(文档对象模型)。
结论
据我了解,人们在某种程度上比较宽松地使用JavaScript一词来指代ECMAScript核心规范。
我要说,所有现代的JavaScript实现(或JavaScript引擎)实际上都是ECMAScript实现。检查来自Google 的V8引擎的定义,例如:
V8是Google的开源高性能JavaScript引擎,用C ++编写,并用在Google Chrome,Google的开源浏览器以及Node.js等中。它实现ECMA-262中指定的ECMAScript。
他们似乎交替使用JavaScript和ECMAScript这个词,我想说它实际上是ECMAScript引擎吗?
因此,大多数JavaScript引擎实际上都在实现ECMAScript标准,但是它们没有将其称为ECMAScript引擎,而是将自己称为JavaScript引擎。这个答案也支持我看情况的方式。
我怀疑我们是否曾经使用过“ ECMAScript”一词,如果不是因为名称“ JavaScript”归Sun所有。出于所有目的和目的,该语言是JavaScript。您不去书店寻找ECMAScript书籍,对吗?
说“ JavaScript”是实现有点太简单了。JScript是Microsoft的实现。