ECMAScript和JavaScript的区别是什么?根据我的推断,ECMAScript是标准,JavaScript是实现。这对吗?
当前回答
我知道这是一个老帖子,但希望这能帮助到一些人。
在20世纪90年代,js的不同版本开始出现,比如netscape的javascript, Js脚本来自微软。所以ecmascript作为标准被引入。但是ecmascript只是javascript的一部分,它指定了它的核心语法、类型、对象等。这可能解释了javascript在不同浏览器中的实现不一致
Wrox(面向Web开发人员的专业Javascript)
其他回答
Javascript是它最初的名字,意在利用java的流行。ECMA是监督最终实施的标准的标准机构,因此名称大致相同。
实现还有其他名字,比如V8或者Rhino等等。
我知道这是一个老帖子,但希望这能帮助到一些人。
在20世纪90年代,js的不同版本开始出现,比如netscape的javascript, Js脚本来自微软。所以ecmascript作为标准被引入。但是ecmascript只是javascript的一部分,它指定了它的核心语法、类型、对象等。这可能解释了javascript在不同浏览器中的实现不一致
Wrox(面向Web开发人员的专业Javascript)
我觉得该上一堂历史课了。
JavaScript最初被命名为Mocha,后来改为Livescript,但最终变成了JavaScript。
值得注意的是,JavaScript出现在ECMAscript之前,历史会告诉你为什么。
从头开始,JavaScript的名字来源于Java,最初Brendan Eich (JS的创造者)被要求为Netscape开发一种类似于Java的web语言。
然而,Eich认为Java的所有规则都太复杂了,所以开始创建一种更简单的语言,即使是初学者也可以编写代码。这在一些事情上很明显,比如放松对分号的需求。
在语言完成后,Netscape的营销团队要求Sun允许他们将其命名为JavaScript作为营销噱头,这就是为什么大多数从未使用过JavaScript的人认为它与Java有关。
在JavaScript在浏览器中发布大约一两年之后,微软的IE采用了这种语言,并开始制作自己的实现,比如JScript。与此同时,IE在市场上占据主导地位,不久之后网景不得不关闭它的项目。
在网景公司倒闭之前,他们决定建立一个标准来指导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)
如果不是因为“JavaScript”这个名字属于Sun,我怀疑我们永远不会使用“ECMAScript”这个词。无论如何,这种语言都是JavaScript。你不会去书店找ECMAScript的书吧?
说“JavaScript”就是实现有点太简单了。JScript是微软的实现。
JavaScript是围绕ECMAScript标准形成的语言的一个分支。我相信ECMA是欧洲计算机制造商协会,并不是说这是真正相关的。
不要忘记另一种围绕ECMA Script标准形成的流行语言是ActionScript,用于Adobe Flash/Flex。
推荐文章
- 为什么我的球(物体)没有缩小/消失?
- 如何使用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对象平放/不平放的最快方法
- 如何以及为什么'a'['toUpperCase']()在JavaScript工作?