jQuery 4.0 hits beta, with reduced support for Internet Explorer and breaking changes

jQuery 4.0 hits beta, with reduced support for Internet Explorer and breaking changes

The jQuery team has released version 4.0 beta, noting that support for Internet Explorer (IE) 10 and lower has been dropped, and warning of breaking changes. IE support will be dropped completely in version 5.0, though that is some years away.

The jQuery JavaScript library is used by over sixty percent of the top 1 million websites, according to builtwith statistics.

Although jQuery 4.0 includes bug fixes and performance improvements, according to jQuery Team Lead Timmy Willison, the release is as much about what is removed as what is new. Support for a number of web browsers has been dropped, including versions of IE prior to 11, Edge Legacy (not based on the Chromium engine), iOS prior to 11, Firefox older than version 65, and others. 

Willison states that IE support will be dropped completely in version 5.0 as confirmed in this GitHub issue. It is fair to say though that the jQuery project is not fast-moving. The previous major release, jQuery 3.0 final, came out in June 2016, and jQuery 4.0 was once intended to appear in 2022.

A related question is for how long jQuery 3.x will be supported and in this discussion maintainer Michał Gołębiowski-Owczarek said that “2026 feels feasible to me, 2028 is a bit too distant for me to say anything.”

jQuery 4.0 also drops support for around a dozen deprecated APIs, these being ones that were either meant to be for internal use only, or now have native equivalents in all supported browsers. The order in which focus and blur events fire has been changed. Previously, this was overridden by jQuery but now the native order will be used, following the current W3C (World Wide Web Consortium) specification.

Binary data is now supported in FormData, used to send data to the server. “This is technically a breaking change,” Willison said, “but should be close to expected behavior.”

Despite these breaking changes, there should not normally be compatibility issues when upgrading from jQuery 3.x, according to Willison, but upgrading from 2.x could be more problematic. 

A significant change in the way jQuery is developed is that version 4.0 now uses ES (ECMAScript) modules and is packaged with Rollup rather than RequireJS.

The role of jQuery is both to simplify JavaScript programming and to provide workarounds for features missing in older browsers. The declining use of Microsoft’s Trident engine, used in IE and forked for Edge Legacy, means that jQuery is in some respects less necessary than before, and there is even a site called You might not need jQuery dedicated to showing native code that avoids the dependency. Nevertheless, jQuery is deeply embedded in the internet and many popular libraries and frameworks use it.

Developers are divided on the question of whether it is better to avoid jQuery in new code. “A few years ago I dropped jQuery for plain vanilla js and I’ve never looked back. Native js has everything jQuery has,” said one Hacker News comment; but another that “it is a widely supported, incredibly stable tool set for … DOM selection, but also attribute manipulation, Ajax requests, event handling, animation, and general utility functions. What’s more, where there is native functionality that replaces jQuery, the API is never as fluent.”