ECMAScript 和 JavaScript 有什么区别?根据我的推断,ECMAScript 是标准,JavaScript 是实现。这个对吗?
JavaScript 和 ECMAScript 有什么区别?
我认为应该上一点历史课。
JavaScript 最初被命名为 Mocha 并更改为 Livescript,但最终成为了 JavaScript。
重要的是要注意 JavaScript 出现在 ECMAscript 之前,历史会告诉你原因。
从一开始,JavaScript 的名字就来源于 Java,最初 Brendan Eich(JS 的创造者)被要求为 Netscape 开发一种类似于 Java 的 Web 语言。
然而,Eich 认为 Java 的所有规则都过于复杂,因此着手创建一种更简单的语言,即使是初学者也可以编写代码。这在诸如放宽分号需求之类的事情中很明显。
语言完成后,Netscape 的营销团队要求 Sun 允许他们将其命名为 JavaScript 作为营销噱头,因此大多数从未使用过 JavaScript 的人认为它与 Java 相关。
在 JavaScript 在浏览器中发布大约一两年后,Microsoft 的 IE 使用了该语言并开始制作自己的实现,例如 JScript。与此同时,IE 占据了市场的主导地位,并且在 Netscape 不得不关闭其项目后不久。
在 Netscape 倒闭之前,他们决定启动一个标准来引导 JavaScript 的发展道路,名为 ECMAScript。
ECMAScript 有几个版本,在 1999 年他们发布了他们的最后一个版本(ECMAScript 3),然后他们进入了接下来的 10 年的休眠状态。在这 10 年里,微软占据了主导地位,但同时他们并没有改进他们的产品,因此诞生了 Firefox(由 Eich 领导)和一大堆其他浏览器,如 Chrome、Opera。
ECMAScript 于 2009 年发布了它的第 5 版(第 4 版被放弃),具有严格模式等特性。从那时起,ECMAScript 获得了很大的动力,并计划在几个月后发布其第 6 版,其中包含迄今为止最大的变化。
您可以在此处使用 ECMAScript 6 的功能列表http://kangax.github.io/es5-compat-table/es6/以及浏览器支持。您甚至可以像使用 CoffeeScript 一样开始编写 Ecmascript 6,然后使用编译器编译为 Ecmascript 5。
ECMAScript 是否是语言而 JavaScript 是否是方言是有争议的,但并不重要。如果你继续这样想,它可能会让你感到困惑。没有编译器可以运行 ECMAScript,我相信 JavaScript 被认为是实现 ECMAScript 标准的语言。
还有其他值得注意的语言实现了 ECMAScript,例如 ActionScript(用于 Flash)
ECMAScript 是一种语言,而 JavaScript、JScript 甚至 ActionScript 3 被称为“方言”。维基百科对此进行了一些说明。
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 将解决在 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 组成)
从技术上讲,ECMAScript 是每个人都在使用和实现的语言——它是多年前创建的规范,当时 Netscape 和微软坐下来试图标准化 JavaScript(Netscape 的脚本语言)和 JScript(微软的)之间的脚本。
随后,所有这些引擎表面上都在实现 ECMAScript,但是 JavaScript(名称)现在由于传统的命名原因以及作为 Mozilla 对其各种非标准扩展(他们希望能够实际“版本化”)的营销术语而存在)