作家
登录

一文读懂JavaScript和ECMAScript的区别

作者: 来源: 2017-11-13 13:07:11 阅读 我要评论

JavaScript 引擎

可以或许懂得和履行 JavaScript 代码的法度榜样或说冥器。

同义词:JavaScript 说冥器,JavaScript 的实现

这个比方可以帮我们解释一些关于浏览器的工作:

JavaScript 引擎平日可以在 web 浏览器中被发明,包含 Chrome 中的 V8 ,火狐中的 SpiderMonkey ,以及 Edge 中的 Chakra 。每款引擎就像是一个用于其应用法度榜样的说话模块,可以让其支撑某种 JavaScript 说话的分支。

JavaScript 引擎对于浏览器来说就像是仁攀类对说话的懂得一样。如不雅我们从新拿我们日常行动中的“走”、“跑”、“跳”来举例的话,一个 JavaScript 引擎是真正可以或许懂得这些动作是何意义的根本机制。

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

浏览器机能的差别

两小我也许会辨认“跳”的敕令,然则一小我因为懂得和对敕令的处理比另一小我更快些,也许会比另一小我对敕令的反竽暌功更快些。类似的是,两个浏览器都可以懂得 JavaScript 代码,然则一个因为其 JavaScript 引擎实现起来效力更高而运行得更快。

浏览器支撑的差别

再以即使说同样说话的人们之间也会有差别为例。即使很多人讲英语,然则一些人也许懂得他人不懂的某些词、表达式和与语律例则,反之亦然。浏览器也是同样的事理。尽管浏览器的 JavaScript 引擎都懂得 JavaScript ,然则某些浏览器会比其他的浏览器对 JavaScript 懂得得更好些。在浏览器对 JavaScript 的支撑中就存在着这一的差别。

是以,开辟者偏向于问如许的问题,“这款浏览器支撑哪个版本的 ECMAScript ?”或者“这款浏览器支撑哪些 ECMAScript 功能?”他们想知道是否 Google、Mozilla 和微软已经开端更新他们浏览器的 JavaScript 引擎了,例如 V8、SpiderMonkey 和 Chakra 是否都已经具有最新的 ECMAScript 中的功能了。

“ECMAScript 是标准。”

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

如不雅新版的 ECMAScript 宣布了,JavaScript 引擎不会一会儿整合所有的更新。他们会逐渐地参加 ECMAScript 功能,这一点大年夜火狐的 JavaScript 变革记录中可见一斑:

JavaScript 运行时

JavaScript 代码运行地点的情况,并为 JavaScript 引擎所解释。运行时供给了 JavaScript 可以运行和操作的宿主对象。

同义词:宿主情况

JavaScript 运行时是裹足本化说话定义中所提到的“已存在的实体或体系”。代码经由过程 JavaScript 引擎传递,一旦被解析和被懂得之后,实体或体系将会履行解释行动。一条狗走路,一小我跑步,一个视频游戏中的义务跳跃(或如上图例子中的那样搞破坏)。

应用法度榜样经由过程在运行时供给“宿主对象”令其本身可用于 JavaScript 脚本。对于客户方来说,JavaScript 运行时可所以 web 浏览器,这时如视窗或 HTML 文得魅如许的宿主对象就可以用于操作了。

你是否曾经应用过视窗或文档宿主对象呢?视窗和文档对象并非真正的核心 JavaScript 说话的一部分。它们是 Web APIs ,即扮演着 JavaScript 宿主情况的浏览器所供给的对象。对于办事器妒攀来说,JavaScript 运行时是 Node.js 。办事器相干的宿主对象,如文件体系、处理和请求都在 Node.js 中被供给。

有趣的一点是:不合的 JavaScript 运行时可以分享同样的 JavaScript 引擎。例如 V8 ,是既为 Google Chrome 也为 Node.js 所用的 JavaScript 引擎—两个截然不合的情况。

ECMAScript 6

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

同义词:ES6、ES2015 和 ECMAScript 2015

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

这一版的 ECMAScript 将其名字由 ES6 改为了 ES2015 ,这是因为 Ecma 国际决定每年都对 ECMAScript 宣布一次。响应地,Ecma 国际也开端基于每年所宣布的来定名新版本的 ECMAScript 规范。简而言之, ES6 和 ES2015 是对同一件工作的两个不合的名字。

Babel

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

开辟者可以应用 ES6 中炫目标新功能,但会为他们的 web 应用担心跨浏览器的兼容性问题。在编写这篇文┞仿的时刻,Edge 和 Internet Explorer 并没有完全地支撑 ES6 规范中的功能。


  推荐阅读

  使用Nginx搭建高可用,高并发的WCF集群

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 很多情况下基于wcf的复杂均衡>>>详细阅读


本文标题:一文读懂JavaScript和ECMAScript的区别

地址:http://www.17bianji.com/lsqh/38779.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)