
Спустя 20 лет после основания проекта состоялся релиз JavaScript-библиотеки jQuery 4.0, используемой, по данным организации W3Techs, на 70.9% из 10 млн наиболее посещаемых сайтов в сети. Исходный код решения jQuery опубликован на GitHub под лицензией MIT.

Релиз jQuery 4.0 содержит изменения, нарушающие обратную совместимость. По заверению команды разработчиков проекта большинство пользователей смогут безболезненно перейти на новую версию с минимальными изменениями в своём коде. Для упрощения миграции можно использовать специальный плагин. Нарушения обратной совместимости связаны с удалением устаревшего кода, некоторых внутренних недокументированных параметров, прекращением поддержки некоторого излишне усложнённого поведения и прекращением поддержки API, ранее объявленных устаревшими.

Удаление устаревших API и браузеров позволило сократить размер gzip‑архива с библиотекой на 3 КБ (slim‑версия теперь занимает 19.5 КБ, а полная — 27.5 КБ).

По информации OpenNET, основные изменения в jQuery 4.0:
прекращена поддержка браузера IE 10 и более старых версий (поддержка IE 11 сохранена, но будет удалена в Query 5.0), а также других старых браузеров, таких как Edge Legacy, Android Browser и Firefox до ветки 115;
встроена поддержка API Trusted Types, развиваемого для защиты от манипуляций с DOM, приводящих к межсайтовому скриптингу (DOM XSS), например, при некорректной обработке полученных от пользователя данных в блоках eval() или вставках «.innerHTML», что может привести к выполнению JavaScript‑кода в контексте определённой страницы. В методы jQuery теперь может передаваться HTML‑код в форме объектов TrustedHTML;
код jQuery переведён на использование JavaScript‑модулей ESM (ECMAScript Module) и может поставляться и импортироваться как модуль;
удалены функции, ранее помеченные устаревшими: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps и jQuery.fx.interval. Вместо данных функций рекомендуется использовать штатные JavaScript‑функции Array.isArray(), JSON.parse(), String.prototype.trim() и Date.now();
удалены недокументированные внутренние методы объекта Array — push, sort и splice;
порядок обработки событий смены фокуса приведён к соответствию спецификации W3C — blur, focusout, focus и focusin;
размер урезанного варианта (slim), не содержащий модули ajax и effects, сокращён до 19.5k за счёт прекращения поставки объектов Deferred (рекомендуется использовать штатные Promises) и Callbacks.

