当前位置:  开发笔记 > 编程语言 > 正文

JavaScript和ECMAScript有什么区别?

如何解决《JavaScript和ECMAScript有什么区别?》经验,为你挑选了12个好方法。

ECMAScript和JavaScript有什么区别?根据我的推断,ECMAScript是标准,JavaScript是实现.它是否正确?



1> Yang Li..:

我认为应该有一点历史课.

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)


@theJollySin是的,他是对的.ECMAScript不是专为浏览器设计的,因此document.getElementById和其他DOM API等方法不属于标准.它们属于WHATWG标准,以及一些其他浏览器特定的方法,如localStorage等.如果您使用node并且不使用任何导入的模块,那么您只有ECMAScript API.
@YangLi你是否同意以下jerone的回答,即ECMAScript语言不包括我们在编写纯JavaScript时使用的DOM API?

2> Ryan Florenc..:

ECMAScript是语言,而JavaScript,JScript甚至ActionScript 3都被称为"方言".维基百科对此有所了解.


倾向并赞成杨莉的,因为这个答案很少,基本上指向维基百科.杨力的答案更加详细和有用.此外,根据我的理解,一个人是语言/标准还是其他方言或实施等是开放的意见,而不是事实.虽然这个答案使它看起来是事实.如果我错了,请纠正我.事实上,我认为这个答案的建议甚至不是普遍的共识.大多数人都认为ECMAScript有标准和JavaScript作为语言.
什么是非常好的是JavaScript和ECMAScript版本之间的清晰映射,例如ES5对应于JS1.5等啊我发现它:http://en.wikipedia.org/wiki/JavaScript#Versions
我不同意.ECMAScript是规范.JS,JScript,ActionScript是实现此类规范的语言.
@Sam-更新Sam的链接:https://en.wikipedia.org/wiki/JavaScript#Version_history

3> Mahmoud Zalt..:

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被认为是"最受欢迎的**实现**".实现是"技术规范的**实现**".这转换成**软件**.那么我想知道这个名为'JavaScript'的软件在哪里.
@Corrodias我会同意这种感觉就像挑选一样,但我认为当答案是关于定义事物时这样做是明智的.JavaScript是一种语言,现在由ECMAscript标准化,类似于C语言是如何通过ISO标准标准化的.JavaScript的术语就是"语言",仅此而已.
ES5,ES2015和BabelJS的摘要确实清除了当他从服务器端编程登陆今天的JS脚本世界时可能遇到的许多混淆.很好的答案.+1
"*Javascript还有其他不属于ECMA规范/标准的附加功能*"您能否举例说明这些功能?

4> olliej..:

从技术上讲,ECMAScript是每个人都在使用和实现的语言 - 这是多年前Netscape和Microsoft坐下来试图标准化JavaScript(Netscape的脚本语言)和JScript(Microsoft)之间脚本的规范.

随后所有这些引擎表面上都实现了ECMAScript,但是JavaScript(名称)现在因传统的命名原因而悬而未决,并且作为Mozilla的各种非标准扩展(他们希望能够实际"版本化")的营销术语. )


Netscape和微软实际上曾经_with一次?!
我认为Brandon希望在微软之前将JS作为标准,而他唯一能找到的就是ECMA.

5> jerone..:

JavaScript = ECMAScript + DOM API ;

ECMAScript®语言规范定义了用于创建和编辑对象,数组,数字等的所有逻辑......

DOM API使得与HTML/XML文档(例如document.getElementById('id');)进行通信成为可能.

JavaScript命名历史:

摩卡►LiveScript►JavaScript►(JS的一部分产生)ECMA-262►ECMAScript►JavaScript(由ECMAScript + DOM API组成)


@jerone当我编写JavaScript代码时,我使用的是什么*版本的ECMAScript?它是否因浏览器或库而异?
那么node.js中的内容不是JavaScript?因为它没有DOM API.
那是对的._"Node.js是针对V8的现代版本构建的."_&_"V8实现了ECMA-262,第5版中指定的ECMAScript ......"_&_"然而,DOM通常不是由JavaScript提供的引擎而不是浏览器.V8也是如此 - 谷歌Chrome提供了DOM."_(来源:https://nodejs.org/en/docs/es6/&https://github.com/v8/ V8 /维基/简介)

6> Imran..:

什么是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相同的语言.



7> 小智..:

各种JavaScript版本是ECMAScript标准的实现.



8> depz123..:

我知道这是一个老帖子,但希望这会对某人有所帮助.

在1990年代,不同版本的js开始出现,就像来自netscape的javascript,来自微软的Js脚本.所以ecmascript被引入作为标准.但ecmascript只是javascript的一部分,它指定了它的核心语法,类型,对象等.可能这解释了跨越diff的javascript的不一致实现.浏览器

参考 - Wrox(面向Web开发人员的专业Javascript)



9> Rethna..:

根据我的理解,ECMAScript是"理论"或"规范",Javascript是"实用"或"实现".



10> ryansstack..:

JavaScript 是一种 ECMAScript语言.

ECMAScript 不一定是 JavaScript.



11> Calmarius..:

现有的答案很好地解释了主要观点.

重点是ECMAScript是一种简单的抽象语言,没有任何特定于域的扩展,它本身就没用了.该规范只定义了语言和它的核心对象.

虽然JavaScript和ActionScript以及其他方言为其添加了特定于域的库,但您可以将其用于有意义的事情.

有许多ECMAScript引擎,其中一些是开源的,另一些是专有的.您可以将它们链接到您的程序,然后将您的本机函数添加到全局对象,以便您的程序可编写脚本.虽然它们通常用于浏览器.



12> Jeremy Huisk..:

Javascript是原始名称,旨在利用Java的流行性。ECMA是负责监督最终制定的标准的标准机构,因此名称大致相同。

实现还有其他名称,例如V8或Rhino等。

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有