ECMAScript和JavaScript有什么区别?根据我的推断,ECMAScript是标准,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.与此同时,在Netscape不得不关闭其项目之后不久,IE就占据了市场主导地位.
在Netscape失败之前,他们决定启动一个标准,指导JavaScript的路径,名为ECMAScript.
ECMAScript发布了一些版本,并在1999年发布了他们的最新版本(ECMAScript 3),然后才进入未来10年的休眠状态.在这10年中,微软主宰了这些场景,但与此同时他们并没有改进他们的产品,因此Firefox诞生了(由Eich领导)和其他一系列浏览器,如Chrome,Opera.
ECMAScript在2009年发布了第5版(第4版被废弃),具有严格模式等功能.从那时起,ECMAScript已经获得了很大的发展势头,并计划在几个月内发布其第6版,其中迄今为止发生了最大的变化.
您可以在http://kangax.github.io/es5-compat-table/es6/上使用ECMAScript 6的功能列表以及浏览器支持.您甚至可以像使用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.
从技术上讲,ECMAScript是每个人都在使用和实现的语言 - 这是多年前Netscape和Microsoft坐下来试图标准化JavaScript(Netscape的脚本语言)和JScript(Microsoft)之间脚本的规范.
随后所有这些引擎表面上都实现了ECMAScript,但是JavaScript(名称)现在因传统的命名原因而悬而未决,并且作为Mozilla的各种非标准扩展(他们希望能够实际"版本化")的营销术语. )
JavaScript = ECMAScript + DOM API ;
ECMAScript®语言规范定义了用于创建和编辑对象,数组,数字等的所有逻辑......
DOM API使得与HTML/XML文档(例如document.getElementById('id');
)进行通信成为可能.
JavaScript命名历史:
摩卡►LiveScript►JavaScript►(JS的一部分产生)ECMA-262►ECMAScript►JavaScript(由ECMAScript + DOM API组成)
什么是ECMAScript即ES?
ECMAScript是脚本语言的标准,Javascript语言基于ECMAScript标准.
Javascript与ECMAScript完全相同吗?
不,Javascript不完全等同于ECMAScript.
Javascript的核心功能基于ECMAScript标准,但Javascript还具有其他非ECMA规范/标准的附加功能.
JavaScript = ECMAScript + DOM API;
DOM API如: document.getElementById('id');
其他语言是否使用ECMAScript标准?
是的,有[JavaScript] [2]以外的语言也将ECMAScript标准作为核心.
[ActionScript] [3](由Adobe Flash使用)和[JScript] [4](由Microsoft使用)都是实现ECMAScript标准的语言.
为什么叫做ECMAScript?
Javascript最初是在Netscape创建的,他们想要标准化语言.因此,他们将该语言提交给E uropean C omputer M anufacturer的A协会(ECMA)进行标准化.
但是,有一个名为Javascript的商标问题,该标准被称为ECMAScript,它也是今天的名称.
由于商标问题,微软的该语言版本称为JScript - 尽管JScript的核心是与Javascript相同的语言.
各种JavaScript版本是ECMAScript标准的实现.
我知道这是一个老帖子,但希望这会对某人有所帮助.
在1990年代,不同版本的js开始出现,就像来自netscape的javascript,来自微软的Js脚本.所以ecmascript被引入作为标准.但ecmascript只是javascript的一部分,它指定了它的核心语法,类型,对象等.可能这解释了跨越diff的javascript的不一致实现.浏览器
参考 - Wrox(面向Web开发人员的专业Javascript)
根据我的理解,ECMAScript是"理论"或"规范",Javascript是"实用"或"实现".
JavaScript 是一种 ECMAScript语言.
ECMAScript 不一定是 JavaScript.
现有的答案很好地解释了主要观点.
重点是ECMAScript是一种简单的抽象语言,没有任何特定于域的扩展,它本身就没用了.该规范只定义了语言和它的核心对象.
虽然JavaScript和ActionScript以及其他方言为其添加了特定于域的库,但您可以将其用于有意义的事情.
有许多ECMAScript引擎,其中一些是开源的,另一些是专有的.您可以将它们链接到您的程序,然后将您的本机函数添加到全局对象,以便您的程序可编写脚本.虽然它们通常用于浏览器.
Javascript是原始名称,旨在利用Java的流行性。ECMA是负责监督最终制定的标准的标准机构,因此名称大致相同。
实现还有其他名称,例如V8或Rhino等。