Guy*_*Guy 455 javascript ecma262
ECMAScript和JavaScript有什么区别?根据我的推断,ECMAScript是标准,JavaScript是实现.它是否正确?
Yan*_* Li 588
我认为应该有一点历史课.
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)
Rya*_*nce 183
ECMAScript是语言,而JavaScript,JScript甚至ActionScript 3都被称为"方言".维基百科对此有所了解.
Mah*_*alt 151
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.
oll*_*iej 42
从技术上讲,ECMAScript是每个人都在使用和实现的语言 - 这是多年前Netscape和Microsoft坐下来试图标准化JavaScript(Netscape的脚本语言)和JScript(Microsoft)之间脚本的规范.
随后所有这些引擎表面上都实现了ECMAScript,但是JavaScript(名称)现在因传统的命名原因而悬而未决,并且作为Mozilla的各种非标准扩展(他们希望能够实际"版本化")的营销术语. )
jer*_*one 38
JavaScript = ECMAScript + DOM API ;
ECMAScript®语言规范定义了用于创建和编辑对象,数组,数字等的所有逻辑......
DOM API使得与HTML/XML文档(例如document.getElementById('id');
)进行通信成为可能.
JavaScript命名历史:
摩卡►LiveScript►JavaScript►(JS的一部分产生)ECMA-262►ECMAScript►JavaScript(由ECMAScript + DOM API组成)
Imr*_*ran 28
什么是ECMAScript即ES?
ECMAScript是脚本语言的标准,Javascript语言基于ECMAScript标准.
Javascript与ECMAScript完全相同吗?
JavaScript = ECMAScript + DOM API;
DOM API如: document.getElementById('id');
其他语言是否使用ECMAScript标准?
为什么叫做ECMAScript?
dep*_*123 11
我知道这是一个老帖子,但希望这会对某人有所帮助.
在1990年代,不同版本的js开始出现,就像来自netscape的javascript,来自微软的Js脚本.所以ecmascript被引入作为标准.但ecmascript只是javascript的一部分,它指定了它的核心语法,类型,对象等.可能这解释了跨越diff的javascript的不一致实现.浏览器
参考 - Wrox(面向Web开发人员的专业Javascript)
ECMAScript是JavaScript的标准,请查看MDN中的这些声明:
JavaScript (JS)是一种轻量级解释型或 JIT 编译型编程语言,具有一流的功能。虽然它是最著名的网页脚本语言,但许多非浏览器环境也使用它,例如 Node.js、Apache CouchDB 和 Adobe Acrobat。JavaScript 是一种基于原型的、多范式的动态语言,支持面向对象、命令式和声明式(例如函数式编程)风格。阅读有关 JavaScript 的更多信息。
JavaScript 的标准是ECMAScript。截至 2012 年,所有现代浏览器都完全支持 ECMAScript 5.1。较旧的浏览器至少支持 ECMAScript 3。2015 年 6 月 17 日,ECMA International 发布了 ECMAScript 的第六个主要版本,正式称为 ECMAScript 2015,最初被称为 ECMAScript 6 或 ES6。从那时起,ECMAScript 标准每年发布一次。本文档指的是最新的草案版本,目前是 ECMAScript 2018。
欲了解更多信息,请访问此处
现有的答案很好地解释了主要观点.
重点是ECMAScript是一种简单的抽象语言,没有任何特定于域的扩展,它本身就没用了.该规范只定义了语言和它的核心对象.
虽然JavaScript和ActionScript以及其他方言为其添加了特定于域的库,但您可以将其用于有意义的事情.
有许多ECMAScript引擎,其中一些是开源的,另一些是专有的.您可以将它们链接到您的程序,然后将您的本机函数添加到全局对象,以便您的程序可编写脚本.虽然它们通常用于浏览器.
以下是我的发现:
JavaScript: The Definitive Guide,由 David Flanagan 编写,提供了非常简洁的解释:
JavaScript 是在 Web 的早期由 Netscape 创建的,从技术上讲,“JavaScript”是 Sun Microsystems(现为 Oracle)许可的商标,用于描述 Netscape(现为 Mozilla)对该语言的实现。Netscape 向 ECMA 提交了标准化语言,但由于商标问题,该语言的标准化版本被困在尴尬的名称“ECMAScript”上。出于相同的商标原因,Microsoft 版本的语言正式称为“JScript”。在实践中,几乎每个人都称这种语言为 JavaScript。
微软的一篇博客文章似乎同意弗拉纳根所说的。
ECMAScript 是我们都知道和喜爱的 JavaScript 语言的正式名称。
..这让我想到了所有出现JavaScript
在这(再次微软)基准柱必须被替换ECMASCript
。他们实际上似乎ECMAScript
只在这个更新和技术文档页面中小心使用。
w3schools.com似乎同意上述定义:
JavaScript 由 Brendan Eich 于 1995 年发明,并于 1997 年成为 ECMA 标准。ECMA-262 是该标准的正式名称。ECMAScript 是该语言的正式名称。
这里的关键是:语言的官方名称。
如果查看Mozilla 的 JavaScript 版本页面,会遇到以下语句:
已弃用。语言功能的显式版本控制和选择加入是 Mozilla 特定的,并且正在被删除。Firefox 4 是最后一个引用 JavaScript 版本 (1.8.5) 的版本。在新的 ECMA 标准中,JavaScript 语言特性现在经常被提及,并在 ECMA-262 版本(例如 ECMAScript 2015)中进行初始定义。
并且当您看到最近的发行说明时,您总会看到对 ECMAScript 标准的引用,例如:
ES2015 Symbol.toStringTag 属性已实现(错误 1114580)。
ES2015 TypedArray.prototype.toString() 和 TypedArray.prototype.toLocaleString() 方法已经实现(bug 1121938)。
Mozilla Web Docs 也有一个页面解释了 ECMAScript 和 JavaScript 之间的区别:
但是,在 Web 浏览器上下文中理解的总称“JavaScript”包含几个非常不同的元素。其中一个是核心语言(ECMAScript),另一个是 Web API 的集合,包括 DOM(文档对象模型)。
结论
根据我的理解,人们使用 JavaScript 这个词来指代核心 ECMAScript 规范有点随意。
我想说,所有现代 JavaScript 实现(或 JavaScript 引擎)实际上都是 ECMAScript 实现。查看谷歌对V8 引擎的定义,例如:
V8 是 Google 的开源高性能 JavaScript 引擎,用 C++ 编写,用于 Google Chrome、Google 的开源浏览器和 Node.js 等。它实现了 ECMA-262 中指定的 ECMAScript。
他们似乎交替使用 JavaScript 和 ECMAScript 一词,我会说它实际上是一个 ECMAScript 引擎吗?
所以大多数 JavaScript 引擎实际上都在实现 ECMAScript 标准,但他们不称它们为 ECMAScript 引擎,而是称自己为 JavaScript 引擎。这个答案也支持我看待情况的方式。
归档时间: |
|
查看次数: |
125924 次 |
最近记录: |