JavaScript 和 ECMAScript 有什么区别?
-
06-09-2019 - |
题
ECMAScript 和 JavaScript 有什么区别?根据我的推断,ECMAScript 是标准,JavaScript 是实现。它是否正确?
解决方案
ECMAScript是语言,而JavaScript中,Jscript和甚至ActionScript 3中被称为 “方言”。 维基百科揭示了这一些光。
其他提示
我觉得有点历史教训是因为
的JavaScript最初被命名摩卡和改变到为LiveScript但最终成为的JavaScript。
要注意这一点很重要的JavaScript的EcmaScript之前来了,历史会告诉你为什么。
要从头开始,JavaScript的来源于Java和最初布兰登·艾克(JS的创造者),它的名字被要求开发出类似于Java进行网络为Netscape的语言。
艾希,但是决定,Java是与它的所有规则,因此着手创建一个更简单的语言,即使是初学者也能代码过于复杂。这是这样的事情,如休闲的需要有一个分号明显。
语言完成后,网景的营销团队要求的太阳,让他们将其命名为JavaScript作为一种营销噱头,因此为什么谁从来没有使用JavaScript的大多数人都认为这是与Java有关。
关于一两年JavaScript的浏览器发布后,微软的IE浏览器采取了语言,并开始做出自己的实现,例如JScript中。与此同时,IE占据了市场,没多久后,网景不得不关闭其项目。
在网景下去,他们决定开始一个标准,将指导的JavaScript的路径,命名为ECMAScript的。
ECMAScript中有几个版本,并于1999年发行了他们的最新版本(ECMAScript中3)他们进入休眠状态为未来10年之前。在这10年里,微软占据了场面,但在同一时间,他们并没有改善他们的产品,因此Firefox的诞生(由艾希LED)和其他浏览器,如Chrome浏览器的整体堆,歌剧院。
的ECMAScript发布了其第5版,2009年与特征(第四版被废弃),诸如严格模式。从那时起,ECMAScript中获得了大量的势头,将公布其第6版在几个月内从现在的最大改变其迄今为止了。
您可以使用的功能的列表的ECMAScript 6在这里 http://kangax.github.io/es5 -compat表/ ES6 / ,也是浏览器的支持。你甚至可以开始写的ECMAScript 6像你这样做的CoffeeScript和使用编译器来编译下来的ECMAScript 5。
无论ECMAScript是语言和JavaScript是方言是有争议的,但并不重要。如果你继续这样想它可能会迷惑你。没有编译器在那里,将运行的ECMAScript,我相信JavaScript是认为它实现了一个叫做ECMAScript标准的语言。
有也实现ECMAScript的其他明显的语言,如动作脚本(用于闪存)
ECMAScript = ES:
ECMAScript 是脚本语言的标准。
Javascript 等语言基于 ECMAScript 标准。
ECMA 标准基于多种原始技术,其中最著名的是 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将解决打字稿和咖啡网中解决的许多核心语言缺点。
ES6 是 JavaScript 的下一代迭代,但它无法在当今的浏览器中运行。
有相当多的转译器会导出 ES5 以在浏览器中运行。
巴贝尔JS:
BabelJS 是最流行的转译器,它将新的 JavaScript ES6 转换为旧的 JavaScript ES5。
BabelJS 使当今编写下一代 JavaScript(即 ES2015)成为可能。
BabelJS 只是将 ES2015 文件转换为 ES5 文件。
当前的浏览器版本现在可以理解新的 JavaScript 代码 (ES2015),即使它们尚不支持。
TypeScript 和 CoffeeScript:
两者都在ES5顶部提供句法糖,然后将其转化为ES5符合的JavaScript。
您编写 TypeScript 或 CoffeeScript,然后转译器将其转换为 ES5 JavaScript。
从技术上ECMAScript是每个人都在使用和实施的语言 - 它是创造了许多年前,当网景和微软坐下来,试图标准化的JavaScript(Netscape的脚本语言)和JScript(微软的)之间的脚本规范
随后所有这些发动机表面上执行的ECMAScript,但是JavaScript的(名字)现在徘徊于传统命名的原因,并作为一个营销术语,由Mozilla为他们的各种非标准的扩展(这是他们希望能够以实际“版本”)
ECMAScript® 语言规范定义了用于创建和编辑对象、数组、数字等的所有逻辑...
DOM(D文件 氧对象 中号odel)使得与 HTML/XML 文档(例如
document.getElementById('id');
).物料清单(乙赛艇运动员 氧对象 中号odel)是浏览器对象的层次结构(例如位置对象、历史对象、表单元素)。
JavaScript 命名的历史:
Mocha ► LiveScript ► JavaScript ► (部分 JS 产生) ECMA-262 ► ECMAScript ► JavaScript (由 ECMAScript + DOM + BOM 组成)
什么是 ECMAScript 即ES?
Ecmascript是脚本语言的标准,JavaScript语言基于Ecmascript标准。
Javascript 与 ECMAScript 完全相同吗?
- 不,Javascript 并不完全等同于 ECMAScript。
- Javascript 的核心功能基于 ECMAScript 标准,但 Javascript 还具有 ECMA 规范/标准中未包含的其他附加功能。
JavaScript = ECMAScript + DOM API;
DOM API 如下: document.getElementById('id');
其他语言是否使用 ECMAScript 标准?
- 是的,除了 JavaScript 之外,还有其他语言也实现了 ECMAScript 标准作为其核心。
- ActionScript(由 Adobe Flash 使用)和 JScript(由 Microsoft 使用)都是实现 ECMAScript 标准的语言。
为什么叫 ECMAScript?
- Javascript 最初是由 Netscape 创建的,他们希望标准化该语言。因此,他们将语言提交给 乙欧洲的 C计算机 中号制造商的 A标准化协会(ECMA)。
- 但是,Javascript 这个名称存在商标问题,该标准被称为 ECMAScript,这也是它今天所使用的名称。
- 由于商标问题,微软的该语言版本被称为 JScript——尽管 JScript 的核心与 Javascript 是同一语言。
各种JavaScript的版本是ECMAScript标准的实现。
我知道这是一个老的文章,但希望这将帮助别人。
在20世纪90年代不同版本的js的开始从Netscape出来像JavaScript, 从微软的JS脚本。所以ECMAScript中介绍了作为一个标准。但是ECMAScript的形式只有JavaScript的一个部分,它指定其核心语法,类型,对象等,可能是解释跨越差异的JavaScript不一致的实现。浏览器
参考 - Wrox的(专业的Javascript对于Web开发者)
在我的理解,ECMAScript是“理论”或“规范”,和Javascript是“实习”或“实施”。
的JavaScript的是强> ECMAScript语言。
的ECMAScript的不一定强>的JavaScript。
现有答案套用主点相当好。
的主要一点是,ECMAScript是裸抽象的语言,没有任何域特定扩展,它是本身没有用的。该规范只定义了语言和它的核心对象。
虽然JavaScript和ActionScript和其他方言中添加特定领域的库,所以你可以使用它进行一些有意义的事情。
有许多的ECMAScript引擎,其中有些是开源的,其它的是专有的。你可以将它们链接到你的程序然后添加原生功能全局对象让你的程序变得编写脚本。虽然它们大多在浏览器中使用。
JavaScript是原来的名称,意思是利用了Java的普及。 ECMA是标准的机构,负责监督该最终到位,所以名称大致相当于标准。
实现有其它名称,像V8或犀牛等
<强>的ECMAScript 强>是<强>的javascrip 强>吨标准,看从这些语句的 MDN 强>:
的JavaScript
<强>的JavaScript(JS)强>是一种轻质解释或JIT编译 编程语言具有一流的功能。虽然这是最 著名的脚本语言的网页,许多非浏览器 环境也使用它,如Node.js的,阿帕奇的CouchDB和Adobe 杂技演员。 JavaScript是一种基于原型的,多模式,动态 语言,支持面向对象的,必要的,和声明 (例如功能编程)样式。了解更多关于JavaScript的。点击
的ECMAScript
为JavaScript的标准是的的ECMAScript 即可。截至2012年,所有现代 浏览器完全支持的ECMAScript 5.1。旧的浏览器支持至少 ECMAScript中3. 2015年6月17日,ECMA国际公布的第六 ECMAScript中的主要版本,这是正式称为的ECMAScript 2015年,并且最初被称为的ECMAScript 6或ES6。以来 然后,ECMAScript的标准是每年上发布周期。这个 文件指的是最新版本的草案,这是目前 ECMAScript的2018。
有关更多信息,请访问这里
我怀疑我们会永远使用这个词“的ECMAScript”如果不是那名“的JavaScript”是由Sun公司拥有的事实对于所有意图和目的,语言是JavaScript。你不用去书店找书的ECMAScript,你呢?
这是一个有点太简单地说,“JavaScript的”是落实。 JScript是Microsoft的实现。
以下是我的发现:
JavaScript:权威指南, 大卫·弗拉纳根 (David Flanagan) 撰写的文章提供了非常简洁的解释:
JavaScript 是在 Web 的早期在 Netscape 创建的,并且 从技术上讲,“JavaScript”是 Sun 许可的商标 Microsystems(现在的Oracle)用来描述Netscape(现在的Mozilla) 语言的实现。Netscape 提交了 标准化到ECMA并且由于商标问题, 该语言的标准化版本被尴尬的名称所困扰 “ECMAScript”。出于相同的商标原因,Microsoft 的 该语言的正式名称为“JScript”。在实践中,差不多 每个人都称这种语言为 JavaScript。
A 博客文章 微软似乎同意弗拉纳根的解释:
Ecmascript是我们都知道和喜欢的JavaScript语言的官方名称。
..这让我想到所有发生的事情 JavaScript
在 这 参考帖子(再次由 Microsoft 发布)必须替换为 ECMASCript
. 。他们实际上似乎在使用时很小心 ECMAScript
只有在 这, ,更新且更具技术性的文档页面。
w3schools.com 似乎同意上面的定义:
JavaScript由Brendan Eich于1995年发明,并于1997年成为ECMA标准。ECMA-262 是该标准的正式名称。ECMAScript 是该语言的正式名称。
这里的关键是: 该语言的官方名称.
如果你检查 Mozilla 的 JavaScript 版本页面, ,你会遇到如下语句:
已弃用。语言的显式版本控制和选择加入 功能是 Mozilla 特有的,正在被删除。Firefox 4 是最后一个引用 JavaScript 版本的版本 (1.8.5).借助新的 ECMA 标准,JavaScript 语言功能现在 经常在 ECMA-262 版本中提及其初始定义 例如 ECMAScript 2015。
当您查看最近的发行说明时,您总是会看到对 ECMAScript 标准的引用,例如:
ES2015 Symbol.toStringTag 属性已实现(错误 1114580)。
ES2015 typedarray.prototype.tostring()和typedarray.prototype.tolecalestring()方法已实现(错误1121938)。
Mozilla Web Docs 也有一个 页 这解释了 ECMAScript 和 JavaScript 之间的区别:
但是,在 Web 浏览器中理解的总称“JavaScript” 上下文包含几个截然不同的元素。其中之一是 核心语言(ECMAScript),另一个是 Web API 的集合, 包括 DOM(文档对象模型)。
结论
据我了解,人们有点随意地使用 JavaScript 这个词来指代核心 ECMAScript 规范。
我想说,所有现代 JavaScript 实现(或 JavaScript 引擎)实际上都是 ECMAScript 实现。检查定义 V8发动机 来自谷歌,例如:
V8 是 Google 的开源高性能 JavaScript 引擎,编写 在 C++ 中并在 Google Chrome(来自 Google 的开源浏览器)中使用, 以及 Node.js 等。它实现了 ECMAScript,如 ECMA-262 中。
他们似乎可以互换使用 JavaScript 和 ECMAScript 这个词,我想说它实际上是一个 ECMAScript 引擎?
所以大多数 JavaScript 引擎实际上都在实现 ECMAScript 标准,但他们不称它们为 ECMAScript 引擎,而是称自己为 JavaScript 引擎。 这 答案也支持我看待这种情况的方式。
JavaScript是围绕ECMAScript标准语言形成一个分支。我相信,ECMA是欧洲计算机制造商协会,并不认为这是真正相关或任何东西。
不要忘了周围的ECMA标准的脚本形成另一种流行的语言是ActionScript中,则Adobe Flash / Flex的使用。