ECMAScript和JavaScript的区别是什么?根据我的推断,ECMAScript是标准,JavaScript是实现。这对吗?
当前回答
各种JavaScript版本都是ECMAScript标准的实现。
其他回答
JavaScript是围绕ECMAScript标准形成的语言的一个分支。我相信ECMA是欧洲计算机制造商协会,并不是说这是真正相关的。
不要忘记另一种围绕ECMA Script标准形成的流行语言是ActionScript,用于Adobe Flash/Flex。
从技术上讲,ECMAScript是每个人都在使用和实现的语言——它是许多年前Netscape和Microsoft坐下来试图在JavaScript (Netscape的脚本语言)和JScript (Microsoft的脚本语言)之间标准化脚本时创建的规范。
随后,所有这些引擎表面上都实现了ECMAScript,然而JavaScript(这个名字)现在因为传统的命名原因而存在,并且作为Mozilla用于各种非标准扩展的营销术语(他们希望能够真正“版本”)。
ECMAScript是语言,而JavaScript, JScript,甚至ActionScript 3被称为“方言”。维基百科对此有所解释。
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是“实践”或“实现”。
推荐文章
- 在React Native中使用Fetch授权头
- 为什么我的球(物体)没有缩小/消失?
- 如何使用jQuery检测页面的滚动位置
- if(key in object)或者if(object. hasownproperty (key)
- 一元加/数字(x)和parseFloat(x)之间的区别是什么?
- angularjs中的compile函数和link函数有什么区别
- 删除绑定中添加的事件监听器
- 很好的初学者教程socket.io?
- HtmlSpecialChars在JavaScript中等价于什么?
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- 我如何等待一个承诺完成之前返回一个函数的变量?
- 在JavaScript中根据键值查找和删除数组中的对象
- 使嵌套JavaScript对象平放/不平放的最快方法