2KB项目,专业的源码交易网站 帮助 收藏 每日签到

一文读懂 JavaScript 和 ECMAScript 的差别

  • 时间:2019-06-04 19:20 编辑:2KB 来源:2KB.COM 阅读:434
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:Wha
英文原文:What’s the difference between JavaScript and ECMAScript?

我曾试着在谷歌上检索 “ JavaScript 和 ECMAScript 之间的差别。”

最初我在失掉的海量的混杂不清又互相抵触的后果中完全失望了:

“ECMAScript 是规范。”

“JavaScript 是规范。”

“ECMAScript 是标准。”

“JavaScript 是 ECMAScript 规范的完成。”

“ECMAScript 是规范化的 JavaScript。”

“ECMAScript 是一门言语。”

“JavaScript 是 ECMAScript 的一个分支。”

“ECMAScript 是 JavaScript。”

忍住,别哭。我强打精神决议做一些苦楚但却有效果的研讨。

这篇文章代表了我今朝对 JavaScript 和 ECMAScript 之间差别的了解。文章合适那些熟习 JavaScript 但又想愈加明白地了解其与 ECMAScript、web 阅读器、Babel 等是何种关系的人。你还会额定了解到剧本言语、JavaScript 引擎和 JavaScript 运转时。 

那末,打起精神来吧。

JavaScript/ECMAScript 辞汇表

下面是一系列的定义,设计的着重点在于一致性和明晰性。定义并不是百分比完好。它们被设计从微观的的层面临 JavaScript 和 ECMAScript 之间的联络和关系给出了阐明。

闲话少叙,让我们Start吧。

Ecma International

一个为科学技术制订规范的组织。

为了要举一个“规范”的例子(虽然并不是由 Ecma 所创造),可以用我们曾用过的键盘来讲明。是否是大大多数的字母以异样的次序陈列,有一个空格键、一个输出键、箭头键,并将数字显示在最上面的一行?这是因为大大多数键盘制作商的键盘设计是基于 QWERTY 结构规范的。

ECMA-262

这是由 Ecma 国际发布的规范。它包括通用目标的剧本言语的标准。

ECMA-262 是一个相似 QWERTY 的规范,但分歧于出现一个键盘层的标准,它出现了被称为 ECMAScript 的剧本言语标准。

可以把 ECMA-262 当作 ECMAScript 的参考数字。

剧本言语

一种专门为在一种存在的实体或系统上操作而设计的编程言语。

关于怎么使编程言语成为剧本言语的惯例设法,请思索号令“walk”、“run” 和 “jump”。这些操作需求一些工具来驱动,多是一个人、一条狗或一个视频游戏脚色。假如没有操作员来履行这些号令,“walk”、“run” 和 “jump” 是没成心义的。这组操作相似于专注于把持内部实体的剧本言语。

ECMAScript

The specification defined in ECMA-262 中定义的规范,是用于创立通用目标剧本言语的。

同义词: ECMAScript 标准

但是ECMA-262是规范的称号,它代表了剧本言语标准ECMAScript。
ECMAScript供给剧本言语必需恪守的规矩、细节和原则,这些才是其被视为兼容ECMAScript的判别规范。

JavaScript

一种通用目标的剧本言语,遵照 ECMAScript 标准。

它是 ECMAScript 言语的一个分支版本。


JavaScript 是我爱好编程的咖啡味言语(指代 Java 族,译者注)。ECMAScript 是它所基于的标准。经过浏览 ECMAScript 标准,你将学会怎么创立剧本言语。经过浏览 JavaScript 文档,你将进修怎么运用剧本言语。

当人们把 JavaScript 称为“ ECMAScript 言语的方言”的时分,他们的意思就像议论英语、法语或者中国方言时一样。一种方言从其母语中衍生出大部分的辞汇和语法,但偏离得值得保存这些差别。

JavaScript 完成了大多数 ECMA-262 中描绘的 ECMAScript 标准,但存在少量差别。 Mozilla 在概述了 JavaScript 的非 ECMAScript 言语功用:

JavaScript 引擎

可以了解和履行 JavaScript 代码的程序或说明器。

同义词:JavaScript 说明器,JavaScript 的完成

JavaScript 引擎凡是可以在 web 阅读器中被发明,包含 Chrome 中的 V8 ,火狐中的 SpiderMonkey ,和 Edge 中的 Chakra 。每款引擎就像是一个用于其使用程序的言语模块,可让其支撑某种 JavaScript 言语的分支。

JavaScript 引擎关于阅读器来讲就像是人类对言语的了解一样。假如我们从头拿我们平常行动中的“走”、“跑”、“跳”来举例的话,一个 JavaScript 引擎是真正可以了解这些举措是何意义的基本机制。

这个比方可以帮我们说明一些关于阅读器的工作:

阅读器功能的差别

两个人或许会辨认“跳”的号令,可是一个人因为了解和对号令的处置比另外一个人更快些,或许会比另外一个人对号令的反响更快些。相似的是,两个阅读器都可以了解 JavaScript 代码,可是一个因为其 JavaScript 引擎完成起来效力更高而运转得更快。

阅读器支撑的差别

再以即便说异样言语的人们之间也会有差别为例。即便很多人讲英语,可是一些人或许理解别人不懂的某些词、表达式和与语律例则,反之亦然。阅读器也是异样的事理。虽然阅读器的 JavaScript 引擎都了解 JavaScript ,可是某些阅读器会比其他的阅读器对 JavaScript 了解得更好些。在阅读器对 JavaScript 的支撑中就存在着这一的差异。

至于说到阅读器支撑,人们凡是谈判到 “ECMAScript 兼容性” 而非“ JavaScript 兼容性”,虽然 JavaScript 引擎剖析和履行的是 JavaScript 。这个问题提及来有点绕,下面的表格可以对其作出说明。

完成使用程序
SpiderMonkeyFirefox,Gecko结构引擎,Adobe Acrobat2017
V8Google Chrome,Node.js,Opera,MarkLogic2016
JavaScriptCore(Nitro)WebKit,Safari,Qt 52017
ChakraMicrosoft Edge5.1

假如你还记得的话,ECMAScript 是一份规则了剧本言语可以看起来像甚么的标准。发布一个新的 ECMAScript 版本其实不意味着一切现存的 JavaScript 引擎忽然就具有了这些新功用。这取决于担任那款 JavaScript 引擎的集团或组织能否要更新到最新的 ECMAScript 标准并采取其所带来的变更。

因而,开发者偏向于问如许的问题,“这款阅读器支撑哪一个版本的 ECMAScript ?”或者“这款阅读器支撑哪些 ECMAScript 功用?”他们想晓得能否 Google、Mozilla 和微软曾经Start更新他们阅读器的 JavaScript 引擎了,例如 V8、SpiderMonkey 和 Chakra 能否都曾经具有最新的 ECMAScript 中的功用了。

ECMASCript 兼容性列表是答复这类问题的绝佳谜底参考。

假如新版的 ECMAScript 发布了,JavaScript 引擎不会一会儿整合一切的更新。他们会逐步地参加 ECMAScript 功用,这一点从火狐的 JavaScript 变卦记载中可见一斑:

JavaScript 运转时

JavaScript 代码运转地点的情况,并为 JavaScript 引擎所说明。运转时供给了 JavaScript 可以运转和操作的宿主工具。

同义词:宿主情况


JavaScript 运转时是在剧本化言语定义中所提到的“已存在的实体或系统”。代码经过 JavaScript 引擎通报,一旦被剖析和被了解以后,实体或系统将会履行说明行动。一条狗走路,一个人跑步,一个视频游戏中的Task腾跃(或如上图例子中的那样搞毁坏)。

使用程序经过在运转时供给“宿主工具”令其自身可用于 JavaScript 剧本。关于客户方来讲,JavaScript 运转时可所以 web 阅读器,这时候如视窗或 HTML 文档如许的宿主工具就能够用于操作了。

你能否已经运用过视窗或文档宿主工具呢?视窗和文档工具并不是真实的中心 JavaScript 言语的一部分。它们是 Web APIs ,即饰演着 JavaScript 宿主情况的阅读器所供给的工具。关于Server端来讲,JavaScript 运转时是 Node.js 。Server相干的宿主工具,如文件系统、处置和恳求都在 Node.js 中被供给。

风趣的一点是:分歧的 JavaScript 运转时可以分享异样的 JavaScript 引擎。例如 V8 ,是既为 Google Chrome 也为 Node.js 所用的 JavaScript 引擎—两个一模一样的情况。

ECMAScript 6

它是 ECMA-262 规范的第六个版本,其特色是对 ECMAScript 标准有着明显的变更和改良。

同义词:ES6、ES2015 和 ECMAScript 2015

这一版的 ECMAScript 将其名字由 ES6 改成了 ES2015 ,这是因为 Ecma 国际决议每一年都对 ECMAScript 发布一次。响应地,Ecma 国际也Start基于每一年所发布的来定名新版本的 ECMAScript 标准。简而言之, ES6 和 ES2015 是对统一件工作的两个分歧的名字。

Babel

一款可以将 ES6 代码转换为 ES5 代码的转译器。

开发者可使用 ES6 中夺目的新功用,但会为他们的 web 使用担忧跨阅读器的兼容性问题。在编写这篇文章的时分,Edge 和 Internet Explorer 并没有完整地支撑 ES6 标准中的功用。

有顾忌的开发者可使用 Bable 将 ES6 代码转换为功用一样的版本,只不外运用的是 ES5 功用。一切主流的阅读器都完整支撑 ES5 ,所以他们可以在运转代码时不要担忧任何问题。

一段妙闻

我盼望这些关于 JavaScript 和 ECMAScript 的信息对你有效。在我们完毕之前,我想要再分享一点可以让像我如许的菜鸟 web 开发者恍然大悟的信息。

先有鸡仍是先有蛋

有一段关于 JavaScript 混杂不清的汗青是它是于1996年被开发出来的。然后在1997年被提交给 ECMA 国际用于规范化任务,这招致了 ECMAScript 的降生。同时,因为 JavaScript 与 ECMAScript 标准坚持一致,所以可以说 JavaScript 是依据 ECMAScript 所完成的一个例子。

令我们觉得风趣的是:ECMAScript 是基于 JavaScript 的,而同时 JavaScript 又是基于 ECMAScript 的。

好吧,我晓得这听起来就像是一个人穿越变成了本人的怙恃一样——有点抵触,不外想起来仍是挺搞笑的。

完毕语

我晓得浏览本文给你带来了很多欢喜,可是信息量仍是很丰厚的。我也要再此说再会了。

假如你有甚么问题、评论、建议或思索的话,请一吐为快。

十分感激浏览本文!

其它翻译版本 (1) 加载中 本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部