ECMAScript和JavaScript的区别是什么?根据我的推断,ECMAScript是标准,JavaScript是实现。这对吗?
当前回答
Javascript是它最初的名字,意在利用java的流行。ECMA是监督最终实施的标准的标准机构,因此名称大致相同。
实现还有其他名字,比如V8或者Rhino等等。
其他回答
从技术上讲,ECMAScript是每个人都在使用和实现的语言——它是许多年前Netscape和Microsoft坐下来试图在JavaScript (Netscape的脚本语言)和JScript (Microsoft的脚本语言)之间标准化脚本时创建的规范。
随后,所有这些引擎表面上都实现了ECMAScript,然而JavaScript(这个名字)现在因为传统的命名原因而存在,并且作为Mozilla用于各种非标准扩展的营销术语(他们希望能够真正“版本”)。
如果不是因为“JavaScript”这个名字属于Sun,我怀疑我们永远不会使用“ECMAScript”这个词。无论如何,这种语言都是JavaScript。你不会去书店找ECMAScript的书吧?
说“JavaScript”就是实现有点太简单了。JScript是微软的实现。
ECMAScript是JavaScript的标准,看看MDN中的这些语句:
JavaScript
JavaScript (JS)是一种轻量级的解释或jit编译的 具有一流函数的编程语言。虽然它是最 作为Web页面的脚本语言而闻名,许多非浏览器 环境也使用它,如node.js, Apache CouchDB和Adobe 杂技演员。JavaScript是基于原型的、多范式的、动态的 语言,支持面向对象、命令式和声明式 (例如函数式编程)风格。阅读更多关于JavaScript的内容。
ECMAScript
The standard for JavaScript is ECMAScript. As of 2012, all modern browsers fully support ECMAScript 5.1. Older browsers support at least ECMAScript 3. On June 17, 2015, ECMA International published the sixth major version of ECMAScript, which is officially called ECMAScript 2015, and was initially referred to as ECMAScript 6 or ES6. Since then, ECMAScript standards are on yearly release cycles. This documentation refers to the latest draft version, which is currently ECMAScript 2018.
欲了解更多信息,请访问这里
ECMAScript = en:
ECMAScript是脚本语言的标准。 像Javascript这样的语言是基于ECMAScript标准的。 ECMA标准基于几种原始技术,最著名的是JavaScript (Netscape)和JScript (Microsoft)。 ECMA的意思是欧洲计算机制造商协会
JavaScript = JS:
JavaScript is the most popular implementation of the ECMAScript Standard. The core features of Javascript are based on the ECMAScript standard, but Javascript also has other additional features that are not in the ECMA specifications/standard. ActionScript and JScript are other languages that implement the ECMAScript. JavaScript was submitted to ECMA for standardization but due to trademark issues with the name Javascript the standard became called ECMAScript. Every browser has a JavaScript interpreter.
ES5 = ECMAScript 5:
ES5是ECMAScript的一个版本(旧版本/当前版本)。 ES5是你现在所知道并在浏览器中使用的JavaScript。 ES5不需要构建步骤(编译器)来将其转换为可以在当前浏览器中运行的内容。 ECMAScript第五版于2009年12月完成, 所有主要浏览器(Chrome、Safari、Firefox和IE)的最新版本 已经实现了版本5。 5.1版于2011年6月完成。
ES6 = ES2015 = ECMAScript 2015:
ES2015是ECMAScript(新/未来版本)的一个版本。 官方名称应该是ES2015,而不是ES6。 ES6将解决许多核心语言缺陷 TypeScript和CoffeeScript。 ES6是JavaScript的下一个迭代,但它不能在今天的浏览器中运行。 有相当多的编译器将导出ES5以便在浏览器中运行。
通天塔:
BabelJS是最流行的将新的JavaScript ES6转换为旧的JavaScript ES5的编译器。 BabelJS使得今天编写下一代JavaScript成为可能(意味着ES2015)。 BabelJS只是将ES2015文件转换为ES5文件。 当前的浏览器版本现在可以理解新的JavaScript代码(ES2015),即使它们还不支持它。
TypeScript和CoffeeScript:
两者都在ES5的基础上提供了语法糖 然后被编译成兼容ES5的JavaScript。 你编写TypeScript或CoffeeScript,然后转译器将其转换为ES5 JavaScript。
现有的答案很好地解释了要点。
主要的一点是ECMAScript是一种纯粹的抽象语言,没有任何特定领域的扩展,它本身是无用的。规范只定义了语言和它的核心对象。
而JavaScript和ActionScript以及其他方言则为其添加了特定于领域的库,因此您可以将其用于有意义的事情。
有许多ECMAScript引擎,其中一些是开源的,另一些是专有的。你可以将它们链接到你的程序中,然后将你的本机函数添加到全局对象中,这样你的程序就可以脚本化了。尽管它们通常在浏览器中使用。
推荐文章
- JavaScript: override alert()
- 重置setTimeout
- 如何确保<select>表单字段被禁用时提交?
- jQuery有不聚焦的方法吗?
- 反应钩子-正确的方式清除超时和间隔
- TypeScript枚举对象数组
- 在React.js中正确的img路径
- 在React.js中更新组件onScroll的样式
- onClick ReactJS调用多个函数
- 如何在JavaScript中转义单引号(')?
- Ng-repeat结束事件
- 谷歌MAP API未捕获的类型错误:无法读取属性“offsetWidth”为空
- 模糊vs聚焦-有什么真正的区别吗?
- 如何使用JavaScript创建和样式一个div ?
- 清除JavaScript中的缓存