IE 11 и старее, прощайте
Новая версия убирает из поддержки работу в старых браузерах типа IE и оптимизирует свой код для современных сред. И удаление поможет в том числе для уменьшения веса довольно большой библиотеки.
Удаление устаревших API
Этот список был уже устаревшим и ранее, но пришло время их удалить на совсем в этом релизе. Эти функции были предназначены для внутреннего использования или у них есть уже аналоги. Они включают:
jQuery.cssNumber
jQuery.cssProps
jQuery.isArray
jQuery.parseJSON
jQuery.nodeName
jQuery.isFunction
jQuery.isWindow
jQuery.camelCase
jQuery.type
jQuery.now
jQuery.isNumeric
jQuery.trim
jQuery.fx.interval
Убраны методы push, sort, splice
В 4 версии убраны устаревшие методы по работе с массивами, которые уже давно существуют в нативном js. При переходе на новую версию, изменение кода будут выглядеть так: `[].push.call($elems, elem) вместо $elems.push(elem))` . Эти изменения также могут повлиять на плагины
Порядок событий у focusin и focusout
Изменение коснулось порядка событий focusin, focusout, focus, blur. У jQuery ранее был свой порядок, но теперь он соответствует спецификации W3C, за исключением IE. Новый порядок следует так:
blur
focusout
focus
focusin
Поддержка FormData
Теперь jQuery поддерживает двоичные данные, включая FormData в запросах AJAX. Это является нарушение совместимости, но обеспечивает автоматическую обработку двоичных данных и соответствует ожидаемому поведению.
Убрано использование JSONP
В новой версии исключили продвижение запросов JSONP. Библиотека придерживается современных практик междоменного взаимодействия в соответствии с политикой CORS. Эта мера направленна на предотвращение неожиданного поведения и соответствие jQuery стандартам веб-безопасности.
Переход к модулям ES
Существенное изменение в 4 версии связано с переходам к модулям ECMAScript (ES). Это переход улучшает совместимость с современными системами модулей JS, например с Rollup. Теперь можно напрямую импортировать модули из jQuery без необходимости в RequireJS, упрощая интеграцию в многие проекты.
Trusted Types и CSP
jQuery вводит поддержку Trust Types, которое обеспечит безопасное использование HTML в методах jQuery (html(), append() и пр) в соответствии с Content Security Policy. Также в асинхронных запросах скриптов были внесены корректировки для уменьшение ошибок с CSP.
Миграция на новую версию
Переход с jQuery 3.0+ на 4.0.0 должен быть плавным. Разработчики смогут использовать плагин jQuery Migrate, который поможет выявить и устранить проблемы с совместимостью, обеспечив более плавный переход к последней версии.
Сжатый вариант новой версии
В v 4.0.0 сжатый вариант прошел дополнительную оптимизацию за счет исключения deferreds и callbacks. Это сократило размер, что особенно полезно сегодня. В итоге «сжатый вариант» (или slim build) это обновленная библиотека предоставляет легковесную альтернативу, которая не жертвует какой-либо функциональностью.