20世纪90年代后半叶,网上冲浪作为一个比较新潮的事物,逐渐被人们熟悉并流行起来,于是开发客户端脚本的需求也随之逐渐增大。虽然当时大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器(也就是咱们俗称的“猫”)连接到网络,但是由于网页技术革新很快,网页逐渐变得更大、更复杂。受当时连接速度的限制,很多网页在打开的时候是非常缓慢的,也就是我们俗称的“卡”。
在那个时候,仅仅一个简单的表单有效性验证,就要客户端与服务器进行多次地往返交互,这是令用户和开发人员十分“痛苦”的。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条被告知忘记填写某一必要的字段的消息,是多么令人烦恼啊?可见,在那个普遍通过电话拨号上网的年代,缓慢的网速让页面每次刷新都考验着人们的耐心,于是由客户端处理某些基本的验证也就成了让人兴奋的新功能。鉴于此,正处于技术革新最前沿的网景公司(Netscape),开始认真考虑开发一种客户端脚本语言来解决简单的处理问题。
早期的mosaic(马赛克)浏览器网页
当时,工作于 Netscape 的布兰登·艾奇(Brendan Eich)开始着手为即将在 1995 年发行的网景浏览器 2.0(Netscape Navigator 2.0)开发一个称之为 LiveScript 的脚本语言,最初的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。在Netscape与Sun的共同努力下,LiveScript 很快得以实现。随后,在Netscape Navigator 2.0正式发布前,Netscape 将LiveScript更名为 JavaScript,目的是为了利用 Java 这个因特网时髦词汇,这也是最初的 JavaScript 1.0 版本。
布兰登·艾奇(Brendan Eich)
JavaScript 1.0的问世深受欢迎,于是Netscape 在 Netscape Navigator 3.0中又发布了 JavaScript 1.1 版本。恰巧在那个时候,微软也决定进军浏览器,发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷)。微软步入浏览器领域的这一重要举动虽然令其“声名狼藉”,但也成为 JavaScript 语言发展过程中的重要一步。
轰动一时的IE 与 网景的浏览器大战
在微软进入后,有3种不同的JavaScript版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 以及其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这3种不同的版本恰恰突出了这个问题。随着业界担心的不断增加,将JavaScript语言的标准化显然已经势在必行。
1997年,JavaScript1.1作为提案被提交给欧洲计算机制造商协会(Ecma)。国际电工委员会(IEC)第39技术委员会(TC39)承担了“标准化一门通用、跨平台、厂商中立的脚本语言的语法和语义”的任务(参见TC39-ECMAScript)。TC39委员会由来自网景、Sun、微软、Borland、Nombas和其他对JavaScript有兴趣的公司的工程师组成。他们花了数月时间打造出ECMA-262,也就是ECMAScript(发音为“ek-ma-script”)这个新的脚本语言标准。
1998年,国际标准化组织(ISO)和国际电工委员会(IEC)也将ECMAScript采纳为标准(ISO/IEC-16262)。自此以后,各大浏览器纷纷开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为JavaScript实现的基础。
1999年以来,ECMAScript不断的更新,推动JavaScript迭代,功能也越来越强大,不仅逐步成为统治前端开发的核心语言,而且还向全栈开发方向突破。其关键发展节点如下:
1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,主要应用于基于浏览器的 Web 开发,Web崛起,JavaScript开始“统治”前端。
2009年12月,ECMAScript 5.0版发布,Node.js 项目诞生,标志着 JavaScript 开始应用于服务器编程,即向全栈方向突破。
2015年6月,ECMAScript 6.0版发布,为 JavaScript 语言增加了许多必要的特性,如模块和类等,使得 JavaScript 具备了面向对象开发的特性,为驾驭大型的项目打下基础,催生出了Electron等“浏览器+ Node.js”的跨平台解决框架。跨平台、3D渲染、前后端一体、基于Node.js丰富的三方库,使得 JavaScript 成为开发 HTML5 游戏与应用的首选编程语言。
2020年,随着越来越多的厂商使用JavaScript为首要编程语言,例如:腾讯的微信小程序、华为的鸿蒙等等,而之后ECMAScript7 – 10的发布,使得JavaScript这门语言可发掘性越来越高。
总而言之,ECMAScript是JavaScript语言的规范标准,JavaScript是ECMAScript 的一种实现。随着ECMAScript 规范的不断升级迭代,为 JavaScript 带来了无限可能。
“与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物”
—— 出自《Brendan Eich》的百度百科词条
本文原创,未经作者允许不可转载!
更多内容,欢迎关注作者微信公众号:李游Leo老师前端讲堂!
暂无评论
违反法律法规
侵犯个人权益
有害网站环境