Netscape 和 JavaScript(LiveScript)
1994年Mosaic研发的核心成员马克·安德森(Marc Andreessen)和几何图形发生器的发明人吉姆·克拉克(Jim.H.Clark)共同创立了Mosaic Communication Corporation。同年11月为了避免与NCSA的法律纠葛,公司更名为Netscape Communication Corporation即 景公司,并一直沿用。
说明 : NCSA:美国国家超级计算机应用中心
二人试图打破Mosaic的垄断并取得业界的领导地位。所以研发了一款新浏览器,名为 Netscape Navigator,即“导航者”。对内其1.0版本的研发代 则为Mozilla! 景公司员工也常将其称作Moz或Mozzie。
1995 年 5 月 26 日,比尔盖茨向微软内部所有员工发送了一份名为“互联 潮汐”的备忘录。在备忘录里,盖茨明确表示,他打算集中公司所有的技术力量,all in 互联 。
盖茨在这份备忘录里发出警示:“互联 用户聚集在一起,也许会创造出比 PC 更有价值的东西。目前我不认为我们的产品可以做到,不过,我们已经找到了一个出生在互联 上的对手,Netscape,它是我们必须要打败的。”
三个月后,IE 2.0 正式上线, 景和微软的战争就此真正开始。
随后,1996年8月13日,微软IE3发布。IE 3.0 搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷)。微软进军浏览器市场,双方激烈竞争就此展开。 景公司的Netscape Navigator与微软公司的Internet Explorer之间的竞争,后来被称为“浏览器大战”。
IE 势头凶猛
微软步入 Web 浏览器领域的这重要一步虽然令其声名狼藉,但也成为 JavaScript 语言发展过程中的重要一步。
三足鼎立 与 标准化
在微软进入后,有 3 种不同的 JavaScript 版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 和其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言的标准化显然已经势在必行。
1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。
名词解释:ECMA
这个组织的目标是评估,开发和认可电信和计算机标准。大家决定把ECMA的总部设在日内瓦是因为这样能够让它与其它与之协同工作的标准制定组织更接近一些,比方说国际标准化组织(ISO)和国际电子技术协会(IEC)。ECMA是“European Computer Manufacturers Association”的缩写,中文称欧洲计算机制造联合会。是1961年成立的旨在建立统一的电脑操作格式标准–包括程序语言和输入输出的组织。- 来自百度百科
第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”(http://www.ecma-international.org/memento/TC39.htm)。由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了名为 ECMAScript 的全新脚本语言。
在接下来的几年里,国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。
名词解释:TC39
TC39(Technical Committee #39)39 技术委员会
ECMAScript 版本
ECMA-262第 1 版(1997年6月)本质上与 Netscape 的 JavaScript 1.1相同——只不过作了一些较小的改动:
- 删除了所有针对浏览器的代码。
- 支持 Unicode标准(从而支持多语言开发)。
- 对象与平台无关(Netscape JavaScript 1.1的对。
- 象在不同平台中的实现不一样,例如 Date 对象)。
这三条规则奠定了JavaScript的可移植性,比如现在比较火爆的node.JS,是一门服务端语言。试想一下如果JavaScript的特性与特定的浏览器绑定的话,前端将是多么混乱的世界。所以,站的高度不同,分析问题的角度,解决问题的角度也会不同,这就是传说中的格局/p>
这也是 JavaScript 1.1和 1.2与 ECMA-262第 1版不一 致的主要原因。
ECMA-262第 2 版(1998年8月)
ECMA-262第 3 版(1999年12月)
ECMA-262第 3 版 才是对该标准第一次真正的修改。修改的内容涉及字符串处理、错误定义和数 值输出。这一版还新增了对正则表达式、新控制语句、try-catch 异常处理的支持,并围绕标准的 国际化做出了一些小的修改。从各方面综合来看,第 3版标志着 ECMAScript成为了一门真正的编程 语言。
ECMA-262第 4 版
ECMA-262第 4 版对这门语言进行了一次全面的检核修订。由于 JavaScript在 Web 上日益流行,开 发人员纷纷建议修订 ECMAScript,以使其能够满足不断增长的 Web 开发需求。作为回应,ECMA TC39 重新召集相关人员共同谋划这门语言的未来。结果,出台后的标准几乎在第 3版基础上完全定义了一门 新语言。
第 4版不仅包含了强类型变量、新语句和新数据结构、真正的类和经典继承,还定义了与数据 交互的新方式。与此同时,TC39下属的一个小组也提出了一个名为 ECMAScript 3.1的替代性建议,该建议只对这 门语言进行了较少的改进。这个小组认为第 4版给这门语言带来的跨越太大了。因此,该小组建议对这门语言进行小幅修订,能够在现有 JavaScript引擎基础上实现。
这也是为什么我们查阅的有关JavaScript资料时,从来没看到过在第四版定义过什么属性或者方法,都是在ES3、ES5中定义的,但也不能说ES4就是废弃物了,现在流行的ES6的原型就是ES4。
终,ES3.1附属委员会获得的支持超过 了 TC39,ECMA-262第 4版在正式发布前被放弃。
ECMA-262第 5版
ECMAScript 3.1 – 著名的 ES5
ECMAScript 3.1成为 ECMA-262第 5版,并于 2009年 12月 3日正式发布。
ECMA-262第 5 版力求澄清第 3 版中已知的歧义并增添了新的功能。新功能包括原生 JSON对象(用于解析和序列化 JSON数据)、继 承的方法和高级属性定义,另外还包含一种严格模式,对 ECMAScript引擎解释和执行代码进行了补充 说明。
IE也有他功绩的一面
2015年3月,微软确认将放弃IE品牌,代 为“Project Spartan”的新版浏览器被正式命名为“Microsoft Edge”,但IE仍会存在于某些版本的Windows 10中。
2016年1月13日(美国时间12日),微软停止为IE8/9/10这些旧版本的IE 浏览器提供技术支持。微软也最后一次放出了一个更新文件包(KB3123303),里面含有安全更新和“寿终正寝” 的升级提醒。
2018年12月6日上午9点,微软通过其博客官方宣布:未来将采用 Chromium 内核开发桌面版 Edge 浏览器,以便为用户带来更好的 Web 兼容性,并为所有 Web 开发者减少 Web 碎片化。因此,微软计划成为 Chromium 项目的“重要贡献者”。
采用 Chromium 意味着微软将用 Blink 渲染引擎替代自己的 EdgeHTML 引擎,用 V8 替代 Chakra JS 引擎。在 Android 上微软将使用 Blink/Chromium,而 iOS 上将使用 WebKit/WKWebView。对于使用 EdgeHTML 或 Chakra 的 Windows 10 应用,它们可以暂时保持现状,微软最终会向它们提供 Edge 采用的 Chromium 方案。开发者现在可以继续采用旧的方案或切换到 Chromium。
chrome是Netscape的延续,到底谁嬴了之JavaScript已空前强大。
布兰登·艾奇(Brendan Eich),JavaScript的发明人
ES.Next 始终指示下一版本 JavaScript 的名称。
参考资料
https://www.jianshu.com/p/33c1d8505975
https://www.html.cn/archives/9925
《前端技术江湖》
慎独、勤思
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!