JavaScript 的发展历程

0 股票
0
0
0
0

介绍

JavaScript 是一种编程语言,与 HTML 和 CSS 并称为网站开发的三大主要语言之一。HTML 和 CSS 为网站提供结构和样式,而 JavaScript 则允许您为网站添加功能和行为。这使得访问者能够以各种富有创意的方式与您的网站进行互动。.

第一个浏览器

首款拥有图形用户界面的流行网络浏览器 Mosaic 于 1993 年发布。这款浏览器操作简便,即使是非技术人员也能轻松上手,在早期万维网的快速发展中发挥了重要作用。Mosaic 的原班人马随后创立了网景公司 (Netscape),并于 1994 年发布了功能更强大的浏览器 Netscape Navigator。这款浏览器迅速成为使用最广泛的浏览器。.

在互联网发展的早期阶段,网页只能是静态的,一旦加载到浏览器中,就无法动态变化。在蓬勃发展的网络开发领域,人们渴望打破这一限制,因此在1995年,网景公司决定在Navigator浏览器中添加编程语言。为了实现这一目标,他们采取了两条途径:一是与Sun Microsystems公司合作嵌入Java编程语言;二是聘请Brendan Eich来嵌入Scheme语言。.

Netscape 管理层很快决定,对 Eich 来说,最佳方案是发明一种新语言,其语法类似于 Java,而与 Scheme 或其他现有编程语言的相似度较低。虽然这种新语言及其解释器实现最初在 1995 年 9 月的测试版中被称为 LiveScript,但在 12 月的正式版发布时,名称改为了 JavaScript。.

JavaScript 这个名字的选择造成了一些混淆,让人误以为它与 Java 直接相关。当时正值互联网泡沫时期,Java 是一种流行的新兴语言,因此我认为 JavaScript 这个名字是 Netscape 的一种营销策略。但最初的设计目标实际上是开发一种完全独立的“面向大众的语言”,或者说是“帮助非程序员创建动态交互式网站”。当然,随着 Netscape 的 LiveWire Pro Web 开发工具以及 Ajax、ServerJS、asm.js 和 node.js 等独立 JavaScript 运行时的出现,情况已经发生了变化。.

经微软批准

微软于1995年推出了Internet Explorer,由此引发了与Netscape的浏览器大战。在JavaScript方面,微软对Navigator解释器进行了逆向工程,创建了自己的解释器,名为JScript。.

JavaScript 于 1996 年首次发布,同时发布的还有对 CSS 和 HTML 扩展的初步支持。这些实现方式与浏览器的对应版本存在显著差异。这些差异使得开发者难以保证网站在两种浏览器中都能完美运行,因此«在 Netscape 中浏览效果最佳»和«在 Internet Explorer 中浏览效果最佳»的标识在之后的几年里被广泛使用。.

JScript 的出现

1996年11月,网景公司向ECMA国际组织提交了JavaScript,作为所有浏览器厂商都能遵循的标准规范的起点。这促成了1997年6月首个ECMAScript语言规范的正式发布。.

标准制定过程持续了数年,ECMAScript 2 于 1998 年 6 月发布,ECMAScript 3 于 1999 年 12 月发布。ECMAScript 4 的制定工作于 2000 年开始。.

与此同时,微软在浏览器市场的地位日益稳固。到21世纪初,Internet Explorer的市场份额达到了95%。这意味着JScript成为了Web客户端脚本的实际标准。.

微软最初参与了ECMAScript标准制定过程,并在其JScript语言中实现了一些提案,但最终停止了参与ECMAScript的工作。因此,ECMAScript 4标准被终止。.

增长与标准化

在21世纪初Internet Explorer占据主导地位的时期,前端开发停滞不前。这一局面始于2004年,当时Netscape的继任者Mozilla发布了Firefox浏览器。Firefox广受好评,并从Internet Explorer手中夺取了可观的市场份额。.

2005年,Mozilla加入ECMA国际组织,并开始着手制定ECMAScript for XML (E4X)标准。这促使Mozilla与Macromedia(后被Adobe Systems收购)合作,在其基于ECMAScript 4草案的ActionScript 3语言中实现E4X。目标是将ActionScript 3标准化为新的ECMAScript 4。为此,Adobe Systems将Tamarin实现作为开源项目发布。然而,Tamarin和ActionScript 3与标准的客户端脚本语言差异很大,而且由于缺乏微软的合作,ECMAScript 4最终未能实现。.

与此同时,开源社区也发生了一些非常重要的发展,这些发展与ECMA的工作无关。2005年,杰西·詹姆斯·加勒特发表了一篇白皮书,他在文中创造了“Ajax”一词,并描述了一系列以JavaScript为基础的技术,用于创建可以在后台加载数据的Web应用程序,而无需重新加载整个页面。这引发了一场由开源库及其周围形成的社区引领的JavaScript复兴。许多新的库应运而生,包括jQuery、Prototype、Dojo Toolkit和MooTools。.

谷歌于 2008 年推出了 Chrome 浏览器,其搭载的 V8 JavaScript 引擎速度远超竞争对手。这项创新的关键在于即时编译 (JIT) 技术,因此其他浏览器厂商需要重新构建其引擎以支持 JIT。.

2008年7月,这些分散的各方齐聚奥斯陆召开会议。会议最终促成了2009年初达成的一项协议,旨在整合所有相关工作,推动该语言的发展。最终成果便是ECMAScript 5标准,该标准于2009年12月发布。.

进入青春期

对该语言的雄心勃勃的研究工作持续了数年,最终在 2015 年发布了 ECMAScript 6,其中包含大量正式的新增功能和修复程序。.

2009 年 Ryan Dahl 创建 Node.js 后,JavaScript 在 Web 浏览器之外的应用显著增长。Node 结合了 V8 引擎、事件循环和输入/输出 API,构成了一个独立的 JavaScript 运行时系统。截至 2018 年,Node 的用户已达数百万,而 npm 拥有的模块数量也位居全球所有托管软件包之首。.

ECMAScript 草案规范现已在 GitHub 上公开维护,并通过定期发布的年度快照进行更新。语言的潜在修订将通过全面的提案流程进行审查。现在,开发者不再使用版本号,而是逐个审查即将推出的功能的状态。.

当前的 JavaScript 生态系统拥有众多库和框架、成熟的编程实践,以及在 Web 浏览器之外的广泛应用。此外,随着单页应用程序和其他大量使用 JavaScript 的网站的兴起,也涌现出了许多转译器来辅助开发过程。.

商标

“JavaScript”是甲骨文公司在美国的商标。该商标最初于1997年5月6日授予Sun Microsystems公司,并在2009年甲骨文收购Sun时转让给了甲骨文。.

使用网站用户端

JavaScript 是目前网络上最主要的客户端脚本语言,98% 的网站都在使用它(截至 2022 年年中)。脚本嵌入在 HTML 文档中或在 HTML 文档中使用,并与 DOM 进行交互。.

所有主流浏览器都内置了 JavaScript 引擎,可以在用户设备上执行代码。.

脚本化行为示例
  • 通过 Ajax 或 WebSocket 技术,无需重新加载页面即可在网页上加载新内容。例如,社交媒体用户无需离开当前页面即可发送和接收消息。.
  • 网页动画,例如淡入淡出对象、调整对象大小以及移动对象位置。.
  • 玩网页游戏。.
  • 控制流媒体播放。.
  • 创建弹出式广告或提示框。.
  • 在将数据发送到网络服务器之前,验证网页表单的输入值。.
  • 记录用户行为信息并将其发送到服务器。网站所有者可以使用这些数据进行分析、广告追踪和个性化推荐。.
  • 将用户重定向到另一个页面。.
  • 通过存储或 IndexedDB 标准,在用户设备上存储和检索数据。.

Web库和框架

到 2012 年,超过 80% 的网站使用第三方 JavaScript 库或 Web 框架进行客户端脚本编写。.

React

React(也称为 React.js 或 ReactJS)是一个免费开源的前端 JavaScript 库[41][42],用于构建基于组件的用户界面。它由 Meta(前身为 Facebook)以及一个由开发者和公司组成的社区维护。.

React 可以与 Next.js 等框架配合使用,开发单页应用、移动应用或服务器端渲染应用。由于 React 只负责用户界面和将组件渲染到 DOM,因此 React 应用通常依赖于路由和其他客户端功能库。React 的一个关键优势在于它只重新渲染页面中已更改的部分,避免对未更改的 DOM 元素进行不必要的渲染。.

角度

Angular(也称为“Angular 2+”)[48] 是一个基于 TypeScript 的免费开源单页 Web 应用程序框架,由 Google 的 Angular 团队以及个人和公司组成的社区共同开发。Angular 是由创建 AngularJS 的同一团队完全重写的。.

jQuery

2012年,jQuery是最流行的前端库,超过75%的网站都在使用它。虽然它仍然被广泛使用,但其受欢迎程度已被更新的库和框架超越。.

原生JS

像“Vanilla JS”这样的框架名称其实就是普通JavaScript的另一种说法。它的发明初衷是服务于那些完全不使用任何库或框架,而是完全依赖标准JavaScript功能的网站。.

其他用途

JavaScript 的应用范围已经远远超出了其最初的网页浏览器范畴。如今,JavaScript 引擎已被嵌入到各种其他软件系统中,既用于服务器端网站部署,也用于非浏览器应用程序。.

早期推广服务器端 JavaScript 使用的尝试包括 Netscape 企业服务器和微软互联网信息服务,但它们都只是小众市场。直到 2000 年代后期,随着 Node.js 和其他技术的出现,服务器端 JavaScript 的使用才开始真正增长。.

Electron、Cordova、React Native 和其他应用框架已被用于创建许多使用 JavaScript 实现行为的应用程序。其他非浏览器应用程序包括用于编写 PD 文档脚本的 Adobe Acrobat 以及用 JavaScript 编写的 GNOME Shell 扩展。.

JavaScript 最近出现在一些嵌入式系统中,通常使用 Node.js。.

执行环境

JavaScript 通常依赖运行时环境(例如 Web 浏览器)来提供对象和方法,脚本可以通过这些对象和方法与环境(例如网页 DOM)进行交互。这些环境是单线程的。JavaScript 还依赖运行时环境来提供包含/导入脚本的功能(例如,`<script>` 元素)。 HTML) را فراهم کند. این به خودی خود یک ویژگی زبان نیست، اما در اکثر پیاده سازی های جاوا اسکریپت رایج است. جاوا اسکریپت پیام های یک صف را در یک زمان پردازش می کند. جاوا اسکریپت یک تابع مرتبط با هر پیام جدید را فراخوانی می کند و یک فریم پشته تماس با آرگومان های تابع و متغیرهای محلی ایجاد می کند. پشته تماس بر اساس نیازهای تابع کوچک شده و رشد می کند. هنگامی که پشته تماس پس از تکمیل تابع خالی است، جاوا اسکریپت به پیام بعدی در صف ادامه می‌دهد. این حلقه رویداد نامیده می شود که به عنوان “اجرا تا تکمیل” توصیف می شود زیرا هر پیام قبل از در نظر گرفتن پیام بعدی به طور کامل پردازش می شود. با این حال، مدل همزمانی زبان، حلقه رویداد را غیر مسدودکننده توصیف می‌کند: ورودی/خروجی برنامه با استفاده از رویدادها و توابع پاسخ به تماس انجام می‌شود. این بدان معناست که، برای مثال، جاوا اسکریپت می‌تواند یک کلیک ماوس را در حالی که منتظر یک پرس و جو پایگاه داده برای بازگرداندن اطلاعات است، پردازش کند.

结果

如今,我们可以使用 JavaScript 编写各种程序,包括浏览器、服务器、移动和桌面应用程序。我们希望本文能让您对当今互联网上最流行的编程语言的历史有一个良好的了解。.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

您可能也喜欢

TensorFlow

TensorFlow 是谷歌发布的机器学习和深度学习库……