最近在整理一些JS基础知识,我觉得如果要学一件东西的时候,就要先知道它的历史或发展史。在此我就再次找到了 JS 的发展史。
1990年底,欧洲科学家:Tim Berners-Lee(蒂姆伯纳斯 - 李),在互联网的基础上,发明了 World Wide Web(万维网)。从那以后就可以在网上浏览网页文件。但是最早的网页只能在操作系统的终端里浏览(使用命令行操作),网页是在字符窗口中显示的,非常不方便。
1992年底,美国 NCSA 开发了 Mosaic 浏览器,这是人类历史上第一个浏览器,从此就进入了浏览器浏览(图形界面窗口浏览)的大时代。
1994年10月,Mosaic的开发者之一:Marc Andreessen(马克 安德森)联合投资家 Jim Clark(吉姆 克拉克)成立了 Mosaic Communications(Mosaic 通信公司),但是不久后就改名为 Netscape(网景)。这家公司主要就在 Mosaic浏览器的基础上开发面向普通用户的新一代浏览器 Netscape Navigator(网景领航员)。
1994年12月, Navigator 发布了 1.0 版,一发布大受欢迎,市场份额一举超过了 90%。
但是 Netscape 公司很快就发现,Navigator 浏览器 需要一种可以嵌入网页的脚本语言(不具备开发操作系统的能力,用来编写控制大型应用程序(比如浏览器)的文件),用来控制浏览器行为。在当时,网速很慢但是上网费却非常贵,有些操作不适合在服务端完成。比如说:用户忘记填写 "用户名",但是却点击了 "发送" 按钮,到服务器在发现就有些晚了(浪费网费),所以最好能在用户发出数据之前,就提醒用户 "填写用户名"。所以这时候就需要在网页中嵌入一些小程序,让浏览器检测每一栏是否都填写了。
所以当时管理层对这种浏览器脚本语言的设想是:功能不需要太强,语法较为简单,容易学习和部署。那一年,Sun公司的 Java 语言发布出来了,而且市场推广活动十分成功。所以当时 Netscape 公司就决定与 Sun 公司合作,让浏览器支持嵌入 Java 小程序(后称:Java applet)。但是,浏览器脚本语言是否就选用 Java语言,就存在其争论。后来,还是决定不使用 Java。因为 Java 的语法对于网页小程序过于 "重" 了。但是决定脚本语言的语法还是要接近 Java语言,并且可以支持 Java 程序。这些设想直接就排除了当时现存语言,比如 Perl、Python、TCL。
1995年4月,Netscape 公司决定雇佣了程序员 Brendan Eich (布兰登 艾希)开发这种网页脚本语言。Brendan Eich 当时有很强的函数式编程北京,希望以 Scheme 语言(函数式语言鼻祖 LISP 语言的一种方言)为蓝本,来实现这种新语言。他的Netscape上司坚持认为该语言的语法类似于Java。结果是一种语言具有Scheme的大部分功能,Self的面向对象以及Java的语法。
1995年5月,第一个版本在十天内完成,以适应 Navigator 2.0 Beta 发布计划。这个语言是一个大杂烩,语法有多个来源。
- 基本语法:借鉴 C 语言和 Java 语言。
- 数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类。
- 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包。
- 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。
- 正则表达式:借鉴 Perl 语言。
- 字符串和数组处理:借鉴 Python 语言
为了保持简单,这种脚本语言缺乏了一些关键的功能,比如块级作用域、模块、subtyping(子类型)等等,但是却可以利用现有功能找出解决办法。这种功能的不足,直接导致了后来的 JavaScript 的一个显著特点:对于其他语言,你需要学习语言的各种功能,二对于 JavaScript ,你常常只需要学习解决各种问题的模式就好了。而且由于来源多样,从一开始就注定了, JavaScript 的编程风格是函数式编程和面向对象编程的一种混合体。
Netscape 公司的这种浏览器脚本语言,最初名字叫做 Mocha,1995年9月改为 LiveScript。12月,Netscape 公司与 Sun 公司(Java 语言的发明者和所有者)达成协议,后者允许将这种语言叫做 JavaScript。这样一来,Netscape 公司可以借助 Java 语言的声势,而 Sun 公司则将自己的影响力扩展到了浏览器。
之所以起这个名字,并不是因为 JavaScript 本身与 Java 语言有多么深的关系(实际上基本没关系),而是因为 Netscape 公司已经决定,使用 Java 语言开发网络应用程序,JavaScript 可以像胶水一样,将各个部分连接起来。但是后来 Java 语言的浏览器插件失败了,JavaScript 反而发扬光大。
1995年12月4日,Netscape 公司与 Sun 公司联合发布了 JavaScript 语言,对外宣传JavaScript 是 Java 的补充,属于轻量级的 Java,专门用来操作网页。
1996年3月,Navigator 2.0 浏览器正式内置了 JavaScript 脚本语言。