发布于 2026-01-06 6 阅读
0

JavaScript 的历史

JavaScript 的历史

蒂姆·伯纳斯-李于1989年

1990 年圣诞节蒂姆·伯纳斯-李爵士在瑞士的NeXT 计算机系统上向世界推出了他创建的第一个网络浏览器,大约在同一时间,他还创建了第一个网络服务器。

在本文中,我们将回顾JavaScript 的发展历程,看看它如何从一种仅用十天时间就构建完成的简单脚本语言,演变成一项几乎影响全球每个人的技术。

故事始于1991年12月,当时阿尔·戈尔发明了互联网。实际上,他提出的是戈尔法案,该法案为第一个主流浏览器马赛克提供了资金,该浏览器马赛克由伊利诺伊大学的马克·安德森埃里克·比纳开发。

1993 年 1 月该软件发布了UNIX版本,同年晚些时候又推出了MacintoshWindows版本。
NCSA Mosaic 浏览器

Mosaic是第一个将互联网带给大众的网络浏览器,但当时还没有JavaScript,只有 DOM(文档对象模型),而 DOM 当时距离标准化还相差甚远。

1993 年的 Netscape 网络浏览器

1993年毕业后,安德森搬到加州,与人共同创立了网景公司。短短几年内,网景导航者浏览器就占据了超过80%的市场份额。
大约在同一时期,安德森意识到浏览器需要变得更加动态,网页设计师也需要某种“粘合剂”语言来增强网页的交互性。

他们首先想到的就是 Sun Microsystems 出品的超级流行的Java编程语言,但他们很快意识到这个想法很糟糕,所以 B 计划是聘请一个名叫Brendan Eich的人,他的工作是将 Scheme 编程语言放入浏览器中,同时保持语法仍然类似于 Java。
第一个版本的 JavaScript

仅仅十天后,第一个版本的 JavaScript 就诞生了,但它当时还不叫 JavaScript,而是叫mocha。从语法上看,它和JavaC
一样,都使用花括号,但其底层已经包含了现代 JavaScript 中许多我们熟知且喜爱的特性,例如一等函数、动态类型和原型继承,后者受到了 Sun Microsystems 自编程语言的启发。

在十天内编写出一门完美的编程语言几乎是不可能的,布伦丹·艾希对此心知肚明。他没有编写一种高度专业化的、仅适用于上世纪90年代浏览器的语言,而是编写了一种灵活的多范式语言,开发者可以在此基础上应用他们自己的语言模式。但即便如此,这门语言仍然很有可能失败,而且他根本无法预料到开发者会遇到的极端情况。

1995 年 9 月Mocha 更名为Live Script,并被包含在 Netscape Navigator 2.0 的初始测试版中。然而,仅仅几个月后,在12 月,他们决定将其更名为JavaScript,因为它听起来比当时最热门的编程语言更时髦、更流行。
旧版JS弹出窗口

JavaScript 刚问世时,对用户体验产生了负面影响,主要体现在烦人的弹出窗口上。与此同时,一家快速发展的公司推出了自己的浏览器——Internet Explorer

JS 与 JScript

1996 年由于微软对 JavaScript 进行逆向工程并将其命名为jscript ,我们出现了两种几乎完全相同的语言:javascript 和 jscript 。

ECMA国际

人们意识到,由于互联网的快速发展,JavaScript 需要标准化,因此 Netscape 向欧洲计算机制造商协会 (ECMA)提出了要求,该协会自 1961 年以来一直是 IT 行业标准的制定者,是一个中立的第三方。
ECMA脚本

1997 年 6 月,我们有了ECMA 脚本的第一个版本,这为浏览器供应商和服务器端应用程序提供了一致的规范或一套实现 JavaScript 的指导方针。

在所有人都在为世界末日做准备的时候,1999 年却是科技史上最有趣的一年之一。

我们在千禧年危机和最终的股市危机爆发前不久迎来了ECMAScript
版本 3。 然而,情况即将变得更糟,我们将在接下来的十年里都看不到 ECMAScript 的下一个版本发布。它包含了一些新功能,例如更好的错误处理和字符串相等运算符,使相等性比较更加直观。然而,互联网的时代已经到来,我们现在已经拥有了 JavaScript 的成熟标准,但推动这一标准的 Netscape 公司在一年前被 AOL 收购。仅仅三个月后,在 2000 年 3 月,科技泡沫开始破裂。纳斯达克指数仅在当月就损失了超过一万亿美元的市值,许多知名公司开始倒闭,但互联网的时代依然长存。
Internet Explorer

微软 Internet Explorer 迅速占领了浏览器市场份额,而微软似乎并不在意遵循既定的规则规范。在21 世纪初,Explorer 占据了至少 80% 的市场份额。
微软基本上是自行其是,开发了自己的 JavaScript 扩展。这导致了浏览器碎片化,直到今天,我们在支持这些旧版本的 Internet Explorer 时仍然需要面对这个问题。但与此同时,这也催生了一些革命性的功能,例如Ajax,它允许 JavaScript 异步执行,是现代单页应用程序的雏形。
道格拉斯·克罗克福德

2000 年代初期ECMA 脚本版本 4 的开发工作已经开始,其发展方向与现代 TypeScript 非常相似,具有可选类型注解、类、接口以及许多其他旨在企业级使用 JavaScript 的功能。但委员会成员之一是来自雅虎的Douglas Crockford ,他于2003 年创建了JSON,并且非常担心ES提案的规模会变得非常庞大。

这导致了两个提案同时进行,一个是针对 3.1 版本的提案,另一个是针对一个更简单的 3.1 版本,该版本没有进行重大的语言更改。这场争论一直持续到 2008 年ES 4最终被彻底放弃,但实际上它以 ActionScript 的形式进入了市场,**由**Adobe 公司创建
jQuery

2000 年代中期,开发者们在构建能够跨浏览器运行的 Web 应用程序时遇到了极大的困难,但2006 年jQuery的发布带来了巨大的飞跃。这个库的贡献远超其目前所获得的认可,因为它是最早拥有完善文档的 JS 库之一,并且它赋予了开发者构建跨浏览器 Web 应用程序的能力。

2008 年 9 月 2 日谷歌 Chrome浏览器和v8 引擎的发布是又一个重要的里程碑。v8 引擎从根本上改变了 JavaScript 的生成和解释方式,使其成为客户端和服务端高性能应用程序的理想选择。

V8引擎与Node.js之间的关系

不到一年后,2009 年 5 月Ryan Dahl推出了Node.js,这是一个基于 V8 的 JavaScript 服务器端运行时环境,它包含一个事件循环——这在当时是一个全新的概念,允许开发者编写事件驱动和非阻塞代码。凭借这些特性,Node.js 成为构建实时、可扩展 Web 应用的理想解决方案,并且它还允许开发者从零开始构建整个 Web 应用。

ES 3.1被选为ES 5的基础,ES 5 最终于2009 年 12 月发布,恰好距离上一个官方规范发布整整十年。这一决定做出之时,JavaScript 管理机构也正着手制定下一版ECMAScript 规范。ES
5 具有一些关键特性。例如, JSON支持函数式对象和数组方法、严格模式访问器以及许多其他特性。

到了2010 年,我们开始看到专门为单页应用程序设计的 JavaScript 框架,其中最流行的是BackboneAngularjs,它们都于2010 年 10 月发布。这两个框架都试图解决类似的问题,但实现方式却截然不同。
脊柱和角

Backbone 轻量级,采用命令式编程方法来管理 DOM 变更,而 AngularJS 则功能更全面,使用声明式编程语言。Backbone
的设计者Jeremy Ashe是 JavaScript 界的传奇人物,他同时也是CoffeeScriptUnderscore.js 的创始人。说到 CoffeeScript,它在 JavaScript 的发展史上占据着举足轻重的地位,因为它是第一个真正让转译机制走向主流的语言,其历史可以追溯到1995 年Brendon Ike 的最初设想:创建一个可塑性强、转译机制至关重要的编程语言。
ES6

JavaScript ES6的下一个版本带来了许多新特性,例如 Promise、let 和 Const、箭头函数、展开语法、D 结构等等。这些新特性对于 JavaScript 开发人员来说是一次巨大的飞跃,但开发人员实际使用起来却非常困难,因为许多旧版浏览器不支持它们。这就是为什么如今我们看到BabelTypeScript等工具被广泛使用的原因,因为它们可以兼容任何版本的 JavaScript,甚至可以追溯到ES 3,同时开发人员仍然可以使用现代特性编写代码。
React框架

2015 年的另一项重大发展是React JS的出现。它借鉴了 AngularJS 的一些声明式 UI 概念,并通过单向数据流、不可变性和虚拟 DOM的使用对其进行了改进。它真正巩固了现代声明式 UI 模式,但市面上还有许多其他框架,例如 Angular View,也在争夺开发者的注意力。

这就引出了我们目前的 2022 年;ECMA 脚本委员会正在定期更新JavaScript,目前我们有ES 2022,它为该语言添加了一些优秀的新功能。

这些年来我学到的最重要的一点就是:永远要看好JavaScript。这门语言从最初的原型稳步发展至今,拥有庞大而多元化的社区,这是其他任何编程语言都无法比拟的。

感谢阅读本文;请关注我以获取更多内容。

正在寻找可靠的网站开发公司?不妨了解一下CtrlDev,他们提供一流的服务。

文章来源:https://dev.to/iarchitsharma/the-history-of-javascript-5e98