jQuery 4.0 发布,IE 终于被放弃了

814 阅读2分钟

那个曾经风靡一时的 jQuery,它 20 岁了。

说实话,第一次看到 jQuery 4.0 发布 这个消息的时候,我是愣了一下的。

因为我以为它早就不会再有什么大版本了。

一个诞生于 2006 年的 JavaScript 库,在 Vue、React、Svelte、各种框架层出不穷的今天,居然还能在 2026 年,发布一个 Major 版本。

而且不是简单的修修补补,是一次真正意义上的大更新。


这次升级,把该砍掉的砍掉了,向现代浏览器靠拢。

1、不再支持 IE10 及以下

这个其实一点都不意外

  • IE10 及以下:直接放弃
  • IE11:暂时还活着,但已经开始拆支撑代码了
  • 官方已经明说:jQuery 5.0 移除专门支持 IE 11 及更早版本的代码

在这里插入图片描述

如果你现在的业务对 IE 的依赖很强,那么还是老老实实的用 jQuery3.x 吧。


2、大批 API 被移除了

下面这些 API,其实很多人都没有在用了。

比如:

  • jQuery.isArray
  • jQuery.trim
  • jQuery.parseJSON
  • jQuery.now
  • jQuery.isFunction
  • jQuery.isNumeric

官方态度也很直接:

浏览器早就有原生实现了,不会再重复造轮子

对应的替代方案也很清晰:

  • Array.isArray()
  • String.prototype.trim()
  • JSON.parse()
  • Date.now()

在这里插入图片描述

这一步,对老项目可能有点费劲,但对整个生态来说,反而是好事。


3、jQuery 终于现代化了

以前的 jQuery:AMD、RequireJS、构建方式很可以说是很老了。

现在源码直接是 ES Module,用 Rollup 打包,可以更好地和现代构建工具配合。

这意味着 jQuery 不再只能靠 script 标签活着了,终于可以被当成现代模块来使用

4、focus / blur 事件顺序变了

以前 jQuery 自己统一了一套事件顺序,现在它选择:

完全遵循 W3C 标准

也就是说,如果你项目里有比较复杂的事件联动:

  • focus
  • blur
  • focusin
  • focusout

那么升级前一定要多测一下。


5、Deferred 和 Callbacks 被彻底移除

jQuery 4.0 的 slim 版

  • 没有 Deferred
  • 没有 Callbacks
  • gzip 后只有 19.5KB

官方态度也很明确:

Promise 都是原生的了,还留这些干嘛

如果你还在用:

$.Deferred()

那升级前,最好先想好迁移方案。


我已经很多年没在新项目里用 jQuery 了,但看到 4.0 这个版本,还是觉得挺震撼的。

它可能不是最标准的技术选型,但在合适的地方,依然是个让人放心的工具,这其实已经很难得了。

本文首发于公众号:程序员大华,专注前端、Java开发,AI应用和工具的分享。关注我,少走弯路,一起进步!