惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
B
Blog
V
V2EX
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
博客园 - 聂微东
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
J
Java Code Geeks
H
Help Net Security
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
D
Docker
L
LangChain Blog
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
WordPress大学
WordPress大学
V
Visual Studio Blog

蚊子的前端博客

微说 | 有的人觉得只要不考XX,一定能考好!-蚊子的前端博客 微说 | 春天来了-蚊子的前端博客 明天和意外不知道哪个先来-蚊子的前端博客 微说 | 既然错过了路口,就及时止损,重新规划路线上路-蚊子的前端博客 微说 | 2025年的出生人口数是792万-蚊子的前端博客 微说 | 工作年终总结,让写对接的接口的数量?-蚊子的前端博客 微说 | 温家宝:没有政治体制改革的成功 经济体制改革不可能进行到底-蚊子的前端博客 微说 | 违法犯罪了该不该被禁言?-蚊子的前端博客 微说 | 不明白为什么在推荐去俄罗斯旅游-蚊子的前端博客 微说 | 易中天论骗子-蚊子的前端博客 微说 | 一场大风吹散了秋天-蚊子的前端博客 微说 | 既要、又要、还要、更要!-蚊子的前端博客 又是一年的国庆雨季-蚊子的前端博客 微说 | 预估下2025年的出生人口数据-蚊子的前端博客 微说 | 可惜了我那些小时候的书本-蚊子的前端博客 微说 | 牛马有的是,驴不够了!-蚊子的前端博客 微说 | 能否有一条非户口也能高考的路-蚊子的前端博客 微说 | 小聊中医-蚊子的前端博客 微说 | 将要制作的一款新产品-蚊子的前端博客 微说 | 做人要有信-蚊子的前端博客 微说 | 好一个正义联盟-蚊子的前端博客 微说 | 都是见过吃过的主儿-蚊子的前端博客 微说 | 追求8小时工作制有错吗?-蚊子的前端博客 微说 | 如果尖锐的批评完全消失-蚊子的前端博客 微说 | 很好!-蚊子的前端博客 微说 | 封禁用户可以,但要告知具体原因-蚊子的前端博客 微说 | 面朝大海,春暖花开-蚊子的前端博客 微说 | 程序员的悲哀是什么?-蚊子的前端博客 微说 | 2025年出生人口的预测-蚊子的前端博客 前端在 LiveKit 中如何获取所有的参与者-蚊子的前端博客
前端趣闻之 JavaScript 语言的诞生和发展-蚊子的前端博客
author · 2024-09-20 · via 蚊子的前端博客

JavaScript 语言已诞生近 30 年的时间,让我们一起来回顾下这门语言的诞生和发展的过程。

我同步在 B 站更新了视频版,欢迎观看:

1. 诞生 #

JavaScript 诞生于 1995 年,由网景公司(Netscape)的 Brendan Eich 设计并首次在网景导航者(Netscape Navigator)浏览器上实现。Brendan Eich 只用 10 天时间就把 Javascript 设计出来了。由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript 写出来的程序混乱不堪。

Brendan Eich

JavaScript 最初被命名为 Mocha,后更名为 LiveScript,最终网景和 Sun 联合一起将其重命名为 JavaScript,这一命名主要是为了搭上当时热门的 Java 编程语言的“便车”。

JavaScript 的设计初衷是为了在网页上实现交互性,使网页能够响应用户的操作,如点击按钮、填写表单等。

同期有网景的 JavaScript,微软的 JScript 和 CEnvi 的 ScriptEase 三足鼎立。1997 年,在 ECMA(欧洲计算机制造商协会)的协调下,由 Netscape、Sun、微软、Borland 组成的工作组确定统一标准:ECMA-262。

此后,1998 年, ECMAScript 2.0 发布。 1999 年,ECMAScript 3.0 发布。

2. 版本 3.1 和 4 的大争论 #

2007 年 10 月, ECMAScript 4.0 版草案发布,对 3.0 版做了大幅升级,预计次年 8 月发布正式版本。草案发布后,由于 4.0 版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以 Yahoo、Microsoft、Google 为首的大公司,反对 JavaScript 的大幅升级,主张小幅改动;以 JavaScript 创造者 Brendan Eich 为首的 Mozilla 公司,则坚持当前的草案。

3.1和4的争论

2008 年 7 月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA 开会决定,中止 ECMAScript 4.0 的开发,将其中涉及现有功能改善的一小部分,发布为 ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为 Harmony(和谐)。会后不久,ECMAScript 3.1 就改名为 ECMAScript 5。

不过那些激进的想法也并不是完全丢弃了,很多在后面的 ECMAScript 6 进行了实现。

3. Ajax 的出现 #

AJAX (Asynchronous JavaScript and XML) 是一种创建交互式、更快速的 Web 应用的技术。它允许 JavaScript 向服务器发送异步请求,而不会打断用户的操作。

异步传输ajax

最初的 AJAX 技术是由 Google 在 2005 年提出的,它的核心是 JavaScript 对 XMLHttpRequest 对象的操作。

随着 AJAX 技术的广泛应用和普及,出现了许多 JS 框架如 jQuery,它们简化了 AJAX 的使用,并提供了更多功能,如跨域请求、Promise 等新特性。

可以看下我在 2012 年时写的关于 Ajax 的文章,看看那时候的写法:异步传输 ajax

随着 RESTful API 的流行,JSON 作为数据交换格式取代了 XML,成为了 AJAX 请求的主要数据格式。同时,Fetch API 的出现使得 AJAX 的使用更加简洁和现代化。

4. Node.js 的诞生 #

Node.js 的诞生可以追溯到 2009 年,Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使用了一个事件驱动、非阻塞式 I/O 模型,让 JavaScript 可以运行在服务端的开发平台。

Node.js 的诞生

Node.js 的出现,我个人认为最大的两个作用:

  1. 前端开发者不再仅仅局限在浏览器环境,更能涉猎到服务端领域;
  2. 前端工程化:Node.js 提供了模块化开发、构建工具、自动化测试、部署和运维以及前端服务框架等多种功能;

Node.js 的出现为 JavaScript 在服务器端的应用开辟了新的道路,并逐渐成为 Web 开发领域的重要技术之一。

5. ECMAScript6 的发布 #

ECMAScript 6(简称 ES6 或 ECMAScript 2015)的发布,标志着前端开发进入了一个更加规范化的进程。这一版本的发布为 JavaScript 语言带来了许多重要的新特性和语法改进,极大地提升了开发者的编程体验和开发效率。

ECMAScript6

2013 年 12 月,ECMAScript 6 草案发布。然后是 12 个月的讨论期,听取各方反馈。由于这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能。标准委员会最终决定,标准在每年的 6 月份正式发布一次,作为当年的正式版本。接下来的时间,就在这个版本的基础上做改动,直到下一年的 6 月份,草案就自然变成了新一年的版本。

2015 年 6 月,ECMAScript 6(ES6)正式通过,成为国际标准,正式名称是“ECMAScript 2015”(简称 ES2015)。

从此之后,标准在每年的 6 月份正式发布一次,然后以发布的年份为版本号,例如 2016 年 6 月发布的版本为 ES2016。

6. JavaScript 的商标 #

上面我们也稍微提到过,JavaScript 的名称是由网景(Netscape)和 Sun 公司(就是发明 Java 语言的那家公司)联合命名的,Sun 公司在 1995 年就向美国专利商标局申请了该名称的商标。该商标于 2000 年获得批准。Oracle 又收购了 Sun 公司后,自然而然地掌握了 JavaScript 商标。

JavaScript 的商标

Oracle 一直没有把 JavaScript 的名字用在自己的商业产品上,但是它拥有这个名字的商标权。那那些与 JavaScript 有关的组织就得掂量掂量了。

最近,JavaScript 杰出人士和至少 9000 名其他相关方签署了一封联名信,再次要求 Oracle 放弃其名称的商标,让该编程语言获得自由。

在新发布的公开信中,Node.js 创建者 Ryan Dahl、JavaScript 创建者 Brendan Eich、JavaScript 规范编辑者 Michal Ficarra、Svelte 框架创建者 Rich Harris、npm 创建者 Isaac Schleuter、Socket 首席执行官 Feross Aboukhadijeh、Node.js 技术指导委员会成员 James Snell 以及 Syntax FM 主持人 Wes Bos 和 Scott Tolinski,以及本文提交时的其他 9000 多名签名者,敦促 Oracle 放弃其未使用且因此不需要的 JavaScript 商标。

其实这不是第一次发出倡议了,在 2022 年时,Node.js 创建者 Ryan Dahl 就曾呼吁 Oracle 释放 JavaScript 商标,但 Oracle 并未做出回应。

虽然目前 Oracle 并未产生任何依赖 JavaScript 商标的产品,但商标一直在一家商业公司中握着,总归是可能会产生纠纷。