2026 年 1 月 17 日,在距离初代版本发布整整 20 年后,jQuery 团队正式发布了jQuery 4.0.0。
这是一次跨越十年的大版本更新。对于许多新生代前端开发者来说,$符号可能只是教科书里的历史遗迹;但对于经历过“浏览器兼容性地狱”的老兵而言,这更像是一场迟来的告别仪式。
没有发布会,没有铺天盖地的营销,只有博客上一篇朴实的更新日志。但在 Hacker News 上,这条消息迅速冲上热榜,引发了数百条关于技术变迁、架构复杂性与“简单时代”的怀旧讨论。
在这个 React Server Components 和 AI 编程助手满天飞的 2026 年,jQuery 4.0 的发布意味着什么?它更新了什么?我们又是否还需要它?
jQuery 4.0 的核心主题非常明确:清理历史包袱,拥抱现代标准。
团队坦言,许多破坏性变更是他们“多年来一直想做,但无法在补丁或小版本中完成的”。
1. 终于,告别了旧版 IE
这是 4.0 最令人瞩目的变化。jQuery 4.0 正式放弃了对IE 10 及更低版本的支持。
IE 11 呢?依然支持,但在计划中的 jQuery 5.0 将会被移除。
其他被移除的浏览器:旧版 Edge (非 Chromium 内核)、iOS 11 以下版本、Firefox 65 以下版本。
这意味着 jQuery 终于可以删除大量针对古早浏览器的“怪异模式”兼容代码。对于现在的开发者来说,这不仅意味着包体积的减小(gzip 后减少了约 3KB),更意味着代码逻辑的纯粹化。
2. 源码全面迁移至 ES Modules
这在 2026 年听起来可能有些不可思议,但在 4.0 之前,jQuery 源码一直采用 AMD 规范,依赖 RequireJS 进行构建。
在 4.0 中,源码终于完全迁移到了ES Modules,并改用 Rollup 进行打包。这意味着:
jQuery 现在可以更好地配合现代构建工具(Vite, Webpack 等)。
原生支持
<script type="module">加载。
3. 安全升级:支持 Trusted Types
随着 Web 安全标准的提升,CSP(内容安全策略)变得越来越严格。jQuery 4.0 增加了对Trusted Types的支持。
这意味着当开发者使用 jQuery 操作 DOM(如.html())时,库内部会确保 HTML 字符串经过了受信任的策略处理,从而避免违反require-trusted-types-for指令。这是一个非常“现代化”的改进,表明 jQuery 依然在关注企业级应用的安全需求。
4. 瘦身:移除废弃 API 与内部方法
jQuery 曾是 JavaScript 标准库贫瘠时代的“补丁”。但随着 ES6+ 的普及,原生 JS 已经足够强大。jQuery 4.0 顺势移除了大量已废弃或冗余的 API:
移除:
jQuery.isArray,jQuery.trim,jQuery.parseJSON等。替代方案:直接使用原生
Array.isArray(),String.prototype.trim(),JSON.parse()。
移除:
push,sort,splice等数组方法不再挂载到 jQuery 原型链上。Slim 版本更小:移除了 Deferreds 和 Callbacks 模块(gzip 后仅 20KB 左右),鼓励开发者使用原生的 Promise。
在 Hacker News 的讨论区,关于 jQuery 4.0 的讨论并没有变成单纯的“考古现场”,而是演变成了一场关于“复杂度 vs 实用主义”的深刻辩论。
观点一:它是“意大利面条代码”的替罪羊
许多人将早期的烂代码归咎于 jQuery,这并不公平。jQuery 本身设计精巧,早在 Shadow DOM 出现之前就提供了类似的封装思路。导致项目难以维护的,往往是开发者自身缺乏架构约束,而非工具本身的错。
观点二:现代开发的复杂性反思
也有用户提出了经典质疑:“15年前我用 jQuery 做的事,现在原生 JS 几行就能搞定,为什么还要用它?”
但随即有大量开发者反驳:
API 的优雅性:
$('.el').hide()依然比document.querySelectorAll('.el').forEach(el => el.style.display = 'none')要简洁、直观得多。心智负担:在 React/Vue 中,你需要考虑状态管理、生命周期、构建步骤;而在 jQuery 中,你只需要“选中它,改变它”。对于简单的交互页面,jQuery 依然是效率王者。
生态惯性:WordPress 生态、大量企业内部遗留系统、外包项目,依然运行在 jQuery 之上。
观点三:jQuery + HTMX = 新的极简主义?
一个有趣的趋势是,随着HTMX等库的兴起,开发者开始回归“服务端渲染 HTML + 轻量级客户端交互”的模式。
在这种模式下,不需要庞大的 React 全家桶,只需要一个轻便的工具来处理 DOM 交互。瘦身后的 jQuery 4.0,或者是类似的轻量级库(如 Alpine.js),反而重新找到了生态位。
jQuery 4.0 不是为了挑战 React 或 Vue 的地位而生的。
它更像是一次体面的“大扫除”。它承认了原生 JavaScript 的胜利,主动退出了那些它曾经通过 Polyfill 苦苦支撑的领域(如数组处理、JSON 解析),转而专注于它最擅长的事情——提供一套稳定、统一且优雅的 DOM 操作 API。
参考资料:
jQuery 4.0.0 Official Blog
Hacker News Discussion on jQuery 4