JavaScript发展史

HTML5学堂:JavaScript是HTML5中的一个基本组成部分。我们对HTML5的基本发展进行了基本了解之后,还需要对JavaScript有一定的了解,特别是要明确ECMAScript与JavaScript的关系,了解JavaScript与JAVA的区别。

Netscape 发明了 JavaScript

当 Netscape Navigator 崭露头角时,Nombas 开发了一个可以嵌入网页中的 CEnvi 的版本。这些早期的试验被称为 Espresso Page(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端语言。而 Nombas 丝毫没有料到它的理念将会成为万维网的一块重要基石。

当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,即便这时网页已经不断地变得更大和更复杂。而更加加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器进行多次地往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条告诉你忘记填写一个必要的字段。

那时正处于技术革新最前沿的 Netscape,开始认真考虑开发一种客户端脚本语言来解决简单的处理问题。

当时工作于 Netscape 的 Brendan Eich,开始着手为即将在 1995 年发行的 Netscape Navigator 2.0 开发一个称之为 LiveScript 的脚本语言,当时的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。Netscape 与 Sun 及时完成 LiveScript 实现。

就在 Netscape Navigator 2.0 即将正式发布前,Netscape 将其更名为 JavaScript,目的是为了利用 Java 这个因特网时髦词汇。Netscape 的赌注最终得到回报,JavaScript 从此变成了因特网的必备组件。

三足鼎立

因为 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中发布了 1.1 版。恰巧那个时候,微软决定进军浏览器,发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷)。微软步入 Web 浏览器领域的这重要一步虽然令其声名狼藉,但也成为 JavaScript 语言发展过程中的重要一步。

在微软进入后,有 3 种不同的 JavaScript 版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 和其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 中不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言的标准化显然已经势在必行。

标准化

1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 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 实现的基础。

Web 浏览器中的 ECMAScript 支持

含有 JavaScript 1.1 的 Netscape Navigator 3.0 在 1996 年发布。然后,JavaScript 1.1 规范被作为一个新标准的草案被提交给 EMCA。有了 JavaScript 轰动性的流行,Netscape 十分高兴地开始开发 1.2 版。但有一个问题,ECMA 并未接受 Netscape 的草案。在 Netscape Navigator 3.0 发布后不久,微软就发布了 IE 3.0。该版本的 IE 含有 JScript 1.0(微软自己的 JavaScript 实现的名称),原本计划可以与 JavaScript 1.1 相提并论。然后,由于文档不全以及一些不当的重复特性,JScript 1.0 远远没有达到 JavaScript 1.1 的水平。

在 ECMA-262 第一版定稿之前,发布含有 JavaScript 1.2 的 Netscape Navigator 4.0 是在 1997 年,在那年晚些时候,ECMA-262 标准被接受并标准化。因此,JavaScript 1.2 并不和 ECMAScript 的第一版兼容,虽然 ECMAScript 应该基于 JavaScript 1.1。

JScript 的下一步是 IE 4.0 中加入的 JScript 3.0(2.0 版是随 IIS 3.0 一起发布的,但并未包含在浏览器中)。微软大力宣传 JScript 3.0 是世界上第一个真正符合 ECMA 标准的脚本语言。而那时,ECMA-262 还没有最终定稿,所以 JScript 3.0 也遭受了和 JavaScript 1.2 同样的命运 - 它还是没能符合最终的 ECMAScript 标准。

Netscape 选择在 Netscape Navigator 4.06 中升级它的 JavaScript 实现。JavaScript 1.3 使 Netscape 终于完全符合了 ECMAScript 第一版。Netscape 加入了对 Unicode 标准的支持,并让所有的对象保留了在 JavaScript 1.2 中引入的新特性的同时实现了平台独立。

当 Netscape 将它的源代码作为 Mozilla 项目公布于众时,本来计划 JavaScript 1.4 将会嵌入到 Netscape Navigator 5.0 中。然而,一个冒进的决定 - 要完全从头重新设计 Netscape 的代码,破坏了这个工作。JavaScript 1.4 仅仅作为一个 Netscape Enterprise Server 的服务器端脚本语言发布,以后也没有被放入浏览器中。

如今,所有主流的 Web 浏览器都遵守 ECMA-262 第三版。

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2015-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链

数字证书的存储和安全性

数字证书的产生、分发和存储 首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢? ? CA将证书分发给用户的途径有多种。...

23910
来自专栏FreeBuf

Google全系列产品不再信任赛门铁克某款根证书

Google宣布在接下来的几周,Google会在Chrome、Android和其他Google产品中将把赛门铁克颁发的“Class 3 Public Prima...

1847
来自专栏云端漫步

安全通信TLS介绍

现在我们每天都离不开网络,计算机之间的通信安全是怎么保证的。在这篇文章中,将介绍TLS技术是怎么为安全的通信保驾护航的。

1494
来自专栏企业短信平台

短信验证码收不到的原因,处理方法

在现今的互联网生活中,我们会经常用到短信验证码。例如在用户注册、账户登陆、修改密码、资金支付等场景通过短信验证码进行账户身份安全核验。如果遇到不能收到验证码短信...

1K6
来自专栏FreeBuf

【安全预警】Forbidden attack:7万台web服务器陷入被攻击的险境

最近,根据某国际安全小组的研究表明,金融巨头Visa旗下部分受HTTPS保护的网站最近被发现了一种漏洞,它的存在可以让黑客注入恶意代码,访客浏览器将会访问到恶意...

1927
来自专栏黑白安全

加密电邮在裸奔:PGP与S.MIME严重漏洞曝光

据 ArsTechnica 报道,此前在互联网上被广泛使用的电子邮件加密方法(PGP 与 S/Mime),已经曝出了两个严重的漏洞,或导致加密电邮在黑客面前暴露...

681
来自专栏FreeBuf

流行iOS网络通信库AFNetworking曝SSL漏洞,影响银联、中国银行、交通银行在内的2.5万个iOS应用

微信:freebuf 一个存在于流行开源iOS网络通信库AFNetworking中的严重漏洞使得苹果应用商店中的25000个iOS应用中的HTTPS流量暴露在中...

2306
来自专栏三杯水

从零开始创建自己的博客

1513
来自专栏圆方圆学院精选

【戴嘉乐】(上篇)运用Re-Encryption技术对你的IPFS网络数据进行多重保护

从HTTP逐渐过渡到HTTPS的过程可以看出,网络中的明文传输始终具有不安全感,据我所知,从2015年开始,大部分互联网巨头公司都强制要求各产品线切换使用HTT...

911

云安全(第1部分):从何开始

在何以以及何时部署安全措施这件事上,不同的公司的方案各式各样,形形色色。有的未雨绸缪提早准备,而有的会等到其成为首要需求的时候才会开始。

1858

扫码关注云+社区