作为曾经风靡一时的JavaScript库,jQuery迎来了它的20岁生日。当jQuery 4.0正式发布的消息传来时,不少开发者都感到意外——在这个Vue、React等现代框架主导的时代,这个诞生于2006年的经典库竟然在2026年推出了一个重大版本更新。这并非简单的修补,而是一次旨在拥抱现代浏览器生态的实质性革新。
jQuery 4.0.0正式版已于2026年1月17日发布,这是近十年来的首个主要版本,包含了许多不兼容的变更。团队在长期开发后,终于精简了遗留代码,移除了已弃用的API,并放弃了对一些过于复杂“魔法”行为的支持。
1、彻底放弃对旧版IE的支持
这一点其实早已在预料之中。jQuery 4.0不再支持Internet Explorer 10及更早版本。对于IE 11,团队采取了分阶段移除的策略:目前首先移除了专门支持IE 11及更早版本的代码,而计划在未来的jQuery 5.0中完全移除对其的支持。
此外,jQuery 4.0也停止了对其他一些老旧浏览器的支持,包括Edge Legacy、iOS版本低于最近三个版本、Firefox版本低于最近两个版本(Firefox ESR除外)以及Android浏览器。如果你的项目仍需兼容这些环境,官方建议继续使用jQuery 3.x系列版本。
2、批量移除已弃用的API
jQuery 4.0移除了多个早已被标记为弃用的函数。这些函数要么原本是内部使用,要么在现代浏览器中已有成熟的原生替代方案。被移除的函数包括:
jQuery.isArray
jQuery.trim
jQuery.parseJSON
jQuery.now
jQuery.isFunction
jQuery.isNumeric
jQuery.isWindow
jQuery.camelCase
jQuery.nodeName
jQuery.cssNumber
jQuery.cssProps
jQuery.fx.interval
官方态度明确:浏览器原生API已经足够完善,无需重复造轮子。对应的替代方案也非常直接:
Array.isArray() 替代 jQuery.isArray
String.prototype.trim() 替代 jQuery.trim
JSON.parse() 替代 jQuery.parseJSON
Date.now() 替代 jQuery.now
移除这些废弃API以及对旧版IE的支持代码后,gzip压缩后的jQuery文件大小减少了超过3KB。这对于老项目升级可能带来一些工作量,但从生态演进的角度看,这无疑是一次健康的瘦身。
3、源码迁移至ES模块,构建方式现代化
过去,jQuery的源代码基于AMD模块规范,并依赖RequireJS进行构建,这套工具链已略显陈旧。在4.0版本中,团队将源代码彻底迁移到了ES模块(ECMAScript Modules),并改用Rollup进行打包。
这意味着jQuery现在能够更好地与现代构建工具和开发工作流集成。开发者可以通过<script type="module">标签直接使用,也能在各种支持ES模块的构建环境中将其作为模块导入。这一变化使得jQuery终于能融入现代前端工程化体系。
4、焦点事件顺序现在遵循W3C规范
长期以来,不同浏览器对于focus、blur、focusin和focusout事件的触发顺序存在不一致。jQuery早年曾尝试统一这一行为,但如今所有jQuery 4.0支持的浏览器最新版本都已采用了统一的W3C规范顺序。
因此,jQuery 4.0决定不再覆盖原生行为,而是完全遵循W3C标准。事件顺序现在变更为:
- blur(模糊)
- focusout(焦点离开)
- focus(聚焦)
- focusin(焦点进入)
如果你的项目中存在依赖这些事件顺序的复杂交互逻辑,在升级到jQuery 4.0前务必进行充分测试。
5、Deferred和Callbacks从slim版本中移除
jQuery 4.0的slim版本(精简版)不再包含Deferred和Callbacks模块。经过gzip压缩后,slim版本的体积仅为约19.5KB。官方的理由很直接:现代JavaScript已原生支持Promise,因此这些jQuery特有的异步管理工具已不再必要。
如果你在代码中仍在使用:
$.Deferred()
那么在升级前,你需要规划好迁移方案,转向使用原生的Promise或async/await语法。
结语
尽管许多开发者已经多年未在新项目中使用jQuery,但看到4.0版本的发布,依然能感受到其顽强的生命力。这次更新更像是一次“断舍离”,砍掉了历史包袱,积极向现代Web标准靠拢。在那些需要快速DOM操作、兼容旧系统或作为轻量级选择的场景中,jQuery依然是一个可靠的工具。想要了解更多前端技术动态与实践经验,欢迎来云栈社区交流探讨。
|