JavaScript和ECMAScript有什么区别?

ECMAScript和JavaScript有什么区别? 从我推断,ECMAScript是标准的,JavaScript是实施。 它是否正确?

ECMAScript是语言,而JavaScript,JScript甚至ActionScript 3被称为“方言”。 维基百科对此有所了解。

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

JavaScript最初被命名为摩卡,并改为Livescript,但最终成为JavaScript。

重要的是要注意,JavaScript之前的ECMAscript和历史会告诉你为什么。

从一开始,JavaScript就是从Java衍生出来的,最初是Brendan Eich(JS的创build者)被要求开发一种类似Java的网页用于Netscape的语言。

然而,Eich认为,Java的规则太复杂了,所以开始创build一个简单的语言,即使是初学者也可以编码。这在诸如放宽需要分号之类的事情中是明显的。

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

在浏览器发布JavaScript之后大约一到两年,微软的IE采用了这种语言,并开始制作自己的实现,比如JScript。 与此同时,在网景公司不得不closures其项目之后,IE正在主宰市场。

在Netscape倒台之前,他们决定开始一个标准,引导JavaScript的path,名为ECMAScript。

ECMAScript有几个版本,并在1999年发布了他们的最后一个版本(ECMAScript 3),在未来10年进入冬眠之前。 在这10年中,微软主导了这个场景,但同时他们并没有改进产品,因此Firefox诞生了(由Eich领导),还有其他一些浏览器,如Chrome,Opera。

ECMAScript于2009年发布了其第五版(第四版被废弃),具有严格模式等function。 从那时起,ECMAScript获得了很大的动力,并计划在几个月内发布第六版,这是迄今为止最大的变化。

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

无论ECMAScript是语言还是JavaScript是方言都是有争议的,但并不重要。 如果你继续这样想,可能会让你困惑。 那里没有可以运行ECMAScript的编译器,我相信JavaScript被认为是实现了一个名为ECMAScript的标准的语言。

还有其他可以实现的ECMAScript语言,如ActionScript(用于Flash)

ECMAScript = ES:

  • ECMAScript是脚本语言的标准。

  • Javascript等语言基于ECMAScript标准。

  • ECMA标准基于几种原始技术,最着名的是JavaScript(Netscape)和JScript(微软)。

  • ECMA意味着欧洲计算机制造商协会

JavaScript = JS:

  • JavaScript是ECMAScript标准最stream行的实现。

  • Javascript的核心function基于ECMAScript标准,但Javascript还有其他附加function,不在ECMA规范/标准中。

  • ActionScript和JScript是实现ECMAScript的其他语言。

  • JavaScript被提交给ECMA进行标准化,但由于JavaScript的名称问题,该标准被称为ECMAScript。

  • 每个浏览器都有一个JavaScript解释器。

ES5 = ECMAScript 5:

  • ES5是ECMAScript(旧版/当前版)的一个版本。

  • ES5是您今天在浏览器中使用的JavaScript。

  • ES5不需要构build步骤(transpilers)来将其转换成在今天的浏览器中运行的东西。

  • ECMAScript版本5于2009年12月完成,所有主stream浏览器(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是最stream行的转换器,将新的JavaScript ES6转换成旧的JavaScript ES5。

  • BabelJS使今天编写下一代JavaScript成为可能(意味着ES2015)。

  • BabelJS只需要ES2015文件并将其转换为ES5文件。

  • 目前的浏览器版本现在可以理解新的JavaScript代码(ES2015),即使他们还不支持它。

TypeScript和CoffeeScript:

  • 两者都在ES5之上提供语法糖,然后被转换成符合ES5的JavaScript。

  • 您编写TypeScript或CoffeeScript,然后转换器将其转换为ES5 JavaScript。

从技术上说,ECMAScript是每个人都在使用和实施的语言 – 这是Netscape和Microsoft坐下来试图标准化JavaScript(Netscape的脚本语言)和JScript(微软)之间脚本的许多年前制定的规范。

随后,所有这些引擎都表面上实现了ECMAScript,但是JavaScript(名称)现在已经出现在传统的命名原因中,并且作为Mozilla针对各种非标准扩展(他们希望能够实际“版本化” )

JavaScript = ECMAScript + DOM API ;

  • ECMAScript®Language Specification定义了用于创build和编辑对象,数组,数字等的所有逻辑。

  • DOM API可以与HTML / XML文档进行通信(例如document.getElementById('id'); )。

JavaScript命名的历史:

摩卡►LiveScript►JavaScript►(JS的一部分导致)ECMA-262►ECMAScript►JavaScript(由ECMAScript + DOM API组成)

什么是ECMAScript ie ES?

ECMAScript是一种脚本语言的标准,Javascript语言基于ECMAScript标准。

Javascript与ECMAScript完全一样吗?

不,Javascript不完全等同于ECMAScript。 Javascript的核心function基于ECMAScript标准,但Javascript还有其他附加function,不在ECMA规范/标准中。

JavaScript = ECMAScript + DOM API;

其他语言是否使用ECMAScript标准?

是的, JavaScript以外的语言也实现了ECMAScript标准。 ActionScript (由Adobe Flash使用)和JScript (由Microsoft使用)都是实现ECMAScript标准的语言。 思考实现ECMAScript标准的语言(包括Javascript)的最佳方式是共享相同“核心”结构的方言,但每种语言都在ECMAScript标准之上添加自己的风格和“语调”。

为什么叫ECMAScript?

Javascript最初是在Netscape中创build的,他们想要标准化语言。 于是,他们把语言提交给欧洲计算机制造商协会(ECMA)进行标准化。 但是,Javascript这个名称存在商标问题,标准名为ECMAScript,也就是今天的名称。 同样由于商标问题,微软的语言版本被称为JScript–尽pipeJScript的核心是与Javascript相同的语言。

JS的时间进度

  • 1995年:最初名为Mocha,改为Livescript
  • 1997年:ECMAScript标准build立
  • 1999年:ES3出来,IE5风靡一时
  • 2000-2005:XMLHttpRequest,aka AJAX,在诸如Outlook Web Access(2000)和Oddpost(2002),Gmail(2004)和Google Maps(2005)等应用程序中获得普及。
  • 2009年:ES5出来了(这是我们大多数人现在使用的)forEach,Object.keys,Object.create(特别是Douglas Crockford)和标准JSON
  • 2015年:ES6 / ECMAScript2015出来; 它主要是语法糖,因为人们不能同意更多的开创性的东西(ES7?)

各种JavaScript版本都是ECMAScript标准的实现。

我知道这是一个旧的职位,但希望这将有助于某人。

在20世纪90年代,不同版本的js开始像netscape中的javascript一样,来自微软的Js脚本。 所以ecmascript被引入作为一个标准。 但ecmascript只是JavaScript的一部分,它指定了它的核心语法,types,对象等等。这可能解释了不一致的JavaScript跨diff的实现。 浏览器

参考 – Wrox(为Web开发人员专业的Javascript)

据我了解,ECMAScript是“理论”或“规范”,Javascript是“实用”或“实施”。

JavaScript 是一种 ECMAScript语言。

ECMAScript 不一定是 JavaScript。

现有的答案很好地解释了主要观点。

重点是ECMAScript是纯粹的抽象语言,没有任何领域特定的扩展,它本身是无用的。 规范只定义了语言及其核心对象。

虽然JavaScript和ActionScript和其他方言添加特定于领域的库,所以你可以使用它的意义。

有许多ECMAScript引擎 ,其中一些是开源的,另一些是专有的。 您可以将它们链接到您的程序中,然后将您的本地函数添加到全局对象中,以便您的程序变为可编写脚本。 虽然大多数情况下他们在浏览器中使用。

JavaScript是原来的名字,意味着利用java的普及。 ECMA是负责监督最终实施的标准的标准机构,因此名称大致相同。

实现有其他名字,如V8或Rhino等

JavaScript是围绕ECMAScript标准形成的语言的一个分支。 我相信ECMA是欧洲计算机制造商协会,并不是说这是真正相关的或任何东西。

别忘了在ECMA Script标准周围形成的另一种stream行语言是Adobe Flash / Flex中使用的ActionScript。

我怀疑,如果不是因为名称“JavaScript”是Sun所拥有的,我们就不会使用“ECMAScript”这个词。 对于所有的意图和目的,语言是JavaScript。 你不去书店寻找ECMAScript书籍,是吗?

说“JavaScript”是实现有点太简单了。 JScript是微软的实施。

ECMAScript是JS的一个标准,从MDN看这些语句:

在这里输入图像描述

JavaScript的

JavaScript(JS)是具有一streamfunction的轻量级解释或JIT编译的编程语言。 虽然它是众所周知的网页脚本语言,但许多非浏览器环境也使用它,如node.js,Apache CouchDB和Adobe Acrobat。 JavaScript是基于原型的多范式dynamic语言,支持面向对象,命令式和声明式(例如函数式编程)风格。 阅读更多关于JavaScript的信息


ECMAScript中

JavaScript的标准是ECMAScript 。 截至2012年,所有现代浏览器完全支持ECMAScript 5.1。 旧版浏览器至less支持ECMAScript 3. 2015年6月17日,ECMA International发布了ECMAScript的第六个主版本,ECMAScript 2015正式名称为ECMAScript,最初被称为ECMAScript 6或ES6。 从那以后,ECMAScript标准每年都在发布。 本文档涉及最新的草稿版本,该版本目前是ECMAScript 2018。

欲了解更多信息,请访问这里