ECMAscript和Javascript的区别

ECMAscript VS JavaScript

刚开始学习js的时候很困惑,一些论坛网站书本会提到ECMAscript和ES5/6等字眼,这个东西跟我学习的js有什么关系吗?当时我怀疑我学习的js是过时的js,如同我刚学pthon的时候,大家都转py3,而我却浑然不知还在py2上发力。

基于这个前提,在学习javascript之前,我们先搞清楚ECMAscript和javascript的区别和历史渊源。

ECMAscript 和ECMA International

ECMA International是一家国际性会员制度的信息和电信标准组织,它和企业密切相连的组织,所以 Ecma国际制定的规范标准都是由各类企业来做主要的制定和推广。1997年该组织发布了MCMA-262的标准,该标准制定了MCMAscript语言规范。ECMAscript就是从这里来的。

ECMA-262

ECMA-262是ECMA TC39小组制定的关于脚本语言的规范标准。TC39成员由来自一些对脚本编程感兴趣的公司的程序员组成的。

ECMA-262标准定义了ECMAscript语言规范。这个这个标准也叫成为ECMAscript语言规范(ECMAScript Language Specification),简称ES规范。
ES规范从1997发布到现在为止是第八个版本。ECMAscript是基于几种原始技术,最着名的是javascript(netscape navigator 2.0)和jscript(microsoft ie3)。

JavaSript标准化的历程

1995年前后:

互联网爆发,web应用层出不穷,那时候只要有注册一个.com的域名,基本就能暴富,就如同现在的区块链和人工智能。就在那时候JavaScript有三个主流版本:

  1. Netscape Navigator 3.0 中的 JavaScript
  2. IE 中的 JScript
  3. CEnvi 中的ScriptEase。

与和其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言的标准化显然已经势在必行。

1997年

JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”(http://www.ecma-international.org/memento/TC39.htm)。 锤炼出了 ECMA-262第一版,该标准定义了名为 ECMAScript 的全新脚本语言。

1998年

国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。同年发布了ECMA-262第二个版(ES2).第二个版本基本没有加新功能。

2002年

ECMA-262第三版(ES3),新增引入了强大的正则表达式,更好的字符串处理,新的控制语句,try / catch异常处理,更严格的错误定义,数字输出的格式化以及预期未来语言增长的微小变化。第三版在当时应用非常广泛,几乎所有的浏览器都支持ES3的标准。

ECMA-262第4版本(ES4)夭折,部分功能被迁移到ES6中。

2009年

,ECMA-262第五版(ES5)发布。在ES3的基础上增加了很多功能:包括访问器属性,对象的反射创建和检查,属性属性的程序控制,附加的数组操作函数,对json对象编码格式的支持以及提供增强的错误检查和程序安全性的严格模式。

2011年

被批准为国际标准iso / iec 16262:2011。同年发布ES5.1版本(对ES5做一些升级优化)同时被MCMA-262和ISO/IEC批准。

2015年

ECMA-262第六版(ES6或者叫ES 2015语言规范),ES6可以说从2000年,ES3发布之后就开始沉淀,由于ES4的夭折,ES4中的一些功能特性一直等到ES6才发布,所以第六版的完全是十五年的努力的结果。

ES6为大型应用程序提供更好的支持,创建Lib库,以及使用ecmascript作为其他语言的编译目标。ES6主要新增了如下功能:主要增强包括模块,类声明,词法块范围,迭代器和生成器,异步编程的承诺,解构模式和适当的尾部调用。
内置的ecmascript库被扩展为支持额外的数据抽象,包括映射,集合和二进制数值数组,以及对字符串和正则表达式中的

ECMAscript

根据MCMA-262标准,实现的通用脚本语言规范。

javascript

通用的跨平台脚本语言,他遵守ECMA262的标准,换句话说就是ECMAscript的方言,其他的还有微软的jscript等。

JavasSript商标属于oracle公司,因为sun公司被oracle收购。JavaScript早年被sun公司注册,代表javascript这门语言。但是最早发明javascript是网景公司。

通过学习javascript,你可以学会如何使用javascript进行编程,开发web应用。javascript实现包含三个方面

1. ECMAscript(语言核心功能基于ES规范)
2. DOM— js需要支持对DOM的维护,通过document,element对象实现.这些都是在ES中没有的.
3. BOM— js需要支持对BOM的维护,通过window对象实现.这些都是在ES中没有的.

所以很明显,学习javascript你必须学习三分方面的知识:

1.ES5/ES6语法(一些网络资源和书中所学的js语法,大部分还是采用是ES5,ES6语法比较新,一些浏览器对ES6不兼容,所以一般会用一些转换工具如Babel进行转换。)
2.用第一部分学的语法,通过DOM对象提供的属性方法来操作DOM。
3.用第一部分学的语法,通过BOM对象提供的属性方法来操作BOM。

截至 2012 年,所有的现代浏览器都完整了支持 ECMAScript 5.1,旧式的浏览器至少支持 ECMAScript 3 标准。在2015年6月17日,ECMA国际组织发布了 ECMAScript 的第六版,该版本正式名称为ECMAScript 2015,但通常被称为 ECMAScript 6 或者ES6。自此,ECMAScript每年发布一次新标准。

JavaScript处理引擎

能解析并且运行js代码的解释器。

浏览器通常会有js引擎,js刚出来时就是运行在浏览器中,作为客户端语言使用。常见的js引擎有:

  • chrome v8
  • firefox SpiderMonkey
  • edge chakra

提一下nodejs.nodejs是基于chrome V8引擎。上文提到V8引擎是用来解析执行JS,并且V8是基于ECMAscirpt标准实现的.换个角度说,nodejs里头没有DOM和bom的操作,只保留的javascript的语法核心(ES),并且增加了事件驱动的非阻塞I / O模型,使其轻量级和高效。nodejs作为服务运行在linux,mac,window,把javascipt的角色从前台开发,转移到了后台开发。

浏览器性能差异

这个与JavaScript引擎的实现方式有关系。

浏览器支持差异

多种不同的js引擎处理同一份js代码会存在差异,这种差异是处理引擎造成的,有的浏览器支持,有的浏览器不支持,这就造成兼容性的问题。

相关链接

阮老师 javascript历史

MDN javascript

stackoverflow es diff js

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容