浏览器端三十年只有一门语言,但这一门内部正在换手——写的是 TypeScript,跑的是 JavaScript,这条流水线的两头都在同一件事上。
2-10 说两边语言分家,这一条讲浏览器这一边。它也是本章里最容易让人误判的一条:看新闻会以为 JavaScript 要完了,看数据才发现只是换了写法。
一、只有一门语言能用
浏览器这个环境有个很特别的地方:它只认一门语言。这件事从 1995 年到现在基本没变过。
所以浏览器端的覆盖率数据非常极端——绝大多数网站都在用它,剩下的加起来不到百分之三,而且多半是历史遗留的探测残留。
这种独苗地位带来一个后果:这一门语言的好坏,直接等于整个前端体验的下限。所以它每被嫌弃一次,就必须自己往前挪一步。
二、换手:TypeScript 冒头
TypeScript 不是另一门语言,而是在 JavaScript 上加了一层类型检查:写的时候把类型标出来,工具就能在运行之前发现一批错误。
它在 2025 年第一次登上榜首,把 Python 和 JavaScript 都挤到了后面。差距很小(1.6%),但方向很明确。
三、动手 Demo:榜首换人的那一年
rows = [("TypeScript", 2636006, "+66.6%"),
("Python", 2594000, "+48.8%"),
("JavaScript", 2150000, "+24.8%")]
for i, (lang, n, yoy) in enumerate(rows, 1):
print("%d %-12s %10s %s" % (i, lang, format(n, ","), yoy))
lead = 2636006 - 2594000
print("领先 Python:%s 人,占 %.1f%%"
% (format(lead, ","), lead * 100.0 / 2636006))
实跑输出:
--------------------------------------------------------------------
D11 客户端的脚本语言:JavaScript、TypeScript
--------------------------------------------------------------------
浏览器上能跑的语言,三十年里其实只有一门:
----------------------------------------------------------------------------------------
语言 覆盖的网站 现在还行吗
----------------------------------------------------------------------------------------
JavaScript 98.9% 唯一的正式选手
其余各语言加起来 不到 3% 多是历史遗留的探测残留
----------------------------------------------------------------------------------------
而 JavaScript 这一家,内部正在发生一次换手。
GitHub 2025 年度报告(按月活贡献者排名):
----------------------------------------------------------------------------------------
排名 语言 月活贡献者 同比
----------------------------------------------------------------------------------------
1 TypeScript 2,636,006 +66.6%
2 Python 约 259.4 万 +48.8%
3 JavaScript 约 215 万 +24.8%
4 Java 约 150 万 +20.7%
5 C# 约 110 万 +22.2%
----------------------------------------------------------------------------------------
TypeScript 领先 Python 约 42,006 人——放在 263 万里只差 1.6%。
差距很小,但意义不小:这是十几年来第一次,榜首既不是 JavaScript,
也不是 Python,而是 JavaScript 的【带类型版本】。
再看两组开发者调查:
----------------------------------------------------------------------------------------
调查 结果
----------------------------------------------------------------------------------------
State of JS 2025 只写 TypeScript 的占 40%,只写 JavaScript 的约 6%
Stack Overflow 2025 专业开发者里用过 JavaScript 68.8%、TypeScript 48.8%
同一份调查 TypeScript 用户里 58% 表示还想继续用,JavaScript 是 46.8%
----------------------------------------------------------------------------------------
0.5 秒把两者的关系说清:
JavaScript 是浏览器认识的那门语言;
TypeScript 是 JavaScript 上加了一层类型检查——
写代码时更早发现错,但浏览器不认识它,上线前要编译回 JavaScript。
所以【TypeScript 排第一】不等于【JavaScript 退场】:
它们是同一条流水线的两头——写的是上面那个,跑的是下面那个。
最后一件事和 2-10 呼应:无论写的是哪种,
最终发到浏览器的那份代码,用户一定能看到,也一定能改。
【前端代码不是秘密】——这条在 TypeScript 时代依然成立。
读这个输出:增速那一列比排名更值得看。TypeScript 一年涨了 66%,JavaScript 只涨了 25%——这说明新增的代码几乎都写成了带类型的那种。再看第二、三名:Python 是被 AI 推上去的,JavaScript 还在用,但新项目里出现得越来越少了。
四、为什么是类型赢了
两个原因叠在一起。一是团队协作:代码要看很多遍,类型等于把一部分注释交给了工具去检查,改坏了立刻能发现。
二是 AI 写代码:给模型的上下文越明确,它写得越准。类型恰好就是最明确的那种上下文。所以这两年的增速里,有一部分是 AI 工具推着走的。
要记住的是:TypeScript 最后要编译回 JavaScript 才能跑——浏览器不认识类型。所以【TypeScript 排第一】不等于【JavaScript 退场】,它们是同一条流水线的两头。
五、⚠️ 2026 现状
调查数据能看出这个过渡期的样子:只写 TypeScript 的人已经占四成,只写 JavaScript 的只剩约 6%。但按全体开发者算,用过 JavaScript 的仍然更多(近七成)——因为它跑在运行时,谁都绕不开。
还有一条和 2-10 呼应的:无论写的是哪一种,最后发到浏览器的那份代码,用户一定能看到、也一定能改。这条规矩不会因为换了写法而改变。
30 秒实验
- 按 F12,切到 Console 面板,输入 document.title 回车。
- 看看返回了什么——那就是这一页的标题,来自页面里的标签,而你现在能读它。
- 再试试改一改页面上的文字——感受一下【这个页面在你的浏览器里是由你说了算的】。
常见误区
- 错误:TypeScript 是一门新语言,和 JavaScript 没关系。——纠正:它是 JavaScript 加了一层类型检查。浏览器只认 JavaScript,所以 TypeScript 必须编译回去才能跑。把两者看成一条流水线的两头,就不会在【学哪一个】上纠结:先学下面那个,再往上加类型。
- 错误:JavaScript 排到第三,说明它要死了。——纠正:排名看的是【新写了多少代码】,不是【在运行的有多少】。JavaScript 仍然是唯一能在浏览器里跑的语言,装机覆盖率接近百分之百。没落的不是它,是【只用它、不加类型】这种写法。
- 错误:类型只是给编辑器看的提示,运行时还是要出错。——纠正:它的价值正是在运行之前把错误拦下来。运行时的校验(比如服务器端校验)解决的是另一类问题——这两层是叠加的,不是二选一。
- 错误:既然前端代码谁都能看到,那写得好不好无所谓。——纠正:看到不等于看懂,看懂也不等于能改对。但有一条是硬道理:不能把秘密放在前端。代码可以写得漂亮、可以打包压缩,但任何安全判断都必须在服务器端再做一遍。
自测三问(点开对答案)
1. 为什么说 TypeScript 和 JavaScript 是同一条流水线的两头? —— 因为**写的时候是 TypeScript,跑的时候是 JavaScript**。类型检查发生在写完之后、上线之前;浏览器拿到的仍然是编译后的 JavaScript。**所以它们不是竞争关系——一个负责写对的把握,一个负责跑起来。** 2. 浏览器端为什么几十年只有一门语言? —— 因为**浏览器这个环境只实现了这一门**。这不是技术做不到,而是路径依赖的结果:一旦所有网站都写它,改成本就高到没人愿意动。**代价是这一门语言的历史包袱,全体开发者都得一起背**——所以它每被批评一次,就得自己往前挪一步。 3. 2025 年的榜单变化说明了什么? —— **说明新增代码的写法变了,不是运行时的现实变了**。榜首看的是【谁在写新代码】,而真正在用户设备上跑的还是 JavaScript。**看这类排名时一定要分清是【写得多的】还是【跑得多的】**——它们经常是两件事。- ☐ 下一节(2-12 服务器端的脚本语言:PHP、CMS)
相关笔记
- 将客户端与服务器分离 —— 上一节:两边分别用什么语言
- 浏览器的功能 —— 脚本在渲染路径里占哪一步
- 低级编程语言、高级编程语言、跨平台 —— 编程课里对语言分类的讲述
- 🕸️ Web技术原理 · 索引