<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[jQuery 4.0: ES-модули и отказ от дублирования]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/87/05/5d/1773762897120-generated_1773762856752-resized.webp" alt="Обложка: Первое обновление jQuery за 10 лет: модульная архитектура и отказ от дублирования встроенного функционала" class=" img-fluid img-markdown" /></p>
<p dir="auto">Спустя почти десять лет после выхода jQuery 3.0 команда разработчиков наконец выпустила долгожданное обновление — jQuery 4.0. Это первый крупный релиз библиотеки, который приносит серьёзные изменения в архитектуру и функциональность. jQuery по-прежнему используется на 70,9% из 10 млн самых посещаемых сайтов в интернете, так что это обновление касается огромного количества проектов.</p>
<p dir="auto">Основной посыл jQuery 4.0 — избавиться от легаси-кода, который накопился за годы разработки, и привести библиотеку в соответствие с современными веб-стандартами. Разработчики удалили устаревший функционал, который дублирует встроенные возможности браузеров, и переписали исходный код на ES-модули. Давайте разберёмся, что действительно изменилось и почему это важно для вас.</p>
<h2>Переход на ES-модули: что это меняет</h2>
<p dir="auto">Одно из ключевых изменений в jQuery 4.0 — полный переход на ECMAScript Modules (ESM). Раньше библиотека использовала AMD-модули и глобальные переменные, что делало интеграцию с современными сборщиками вроде Webpack и Vite не совсем удобной. Теперь jQuery работает как нормальный ES-модуль, и вы можете импортировать её стандартным способом.</p>
<p dir="auto">Этот переход важен не просто так. Когда вы используете современный сборщик модулей, он может лучше оптимизировать ваш код благодаря tree-shaking — удалению неиспользуемого функционала. Раньше с jQuery это было затруднено из-за архитектуры на основе глобальных переменных. Теперь же сборщик может точно определить, какие части библиотеки вам нужны, и исключить из финального бандла лишнее.</p>
<p dir="auto">Вот что это дает в практическом плане:</p>
<ul>
<li>Лучшая интеграция с Vite, Webpack, Rollup и другими современными инструментами</li>
<li>Возможность использовать стандартный синтаксис <code>import</code> вместо AMD или глобальных переменных</li>
<li>Более точная оптимизация благодаря tree-shaking и анализу зависимостей</li>
<li>Возможность работать с jQuery как с обычным npm-пакетом в современном экосистеме</li>
</ul>
<h2>Удаление устаревших API: отказ от дублирования</h2>
<p dir="auto">Второе большое изменение — это массовое удаление API, которые дублируют встроенные возможности браузеров. jQuery много лет назад был спасением для разработчиков, потому что разные браузеры реализовывали JavaScript по-разному. jQuery скрывал эти различия и предоставлял единый интерфейс.</p>
<p dir="auto">Но сейчас ситуация изменилась. Современные браузеры подчиняются одним стандартам, и встроенный JavaScript имеет все необходимые функции. Поэтому разработчики jQuery решили убрать дублирующиеся методы и оставить только то, что действительно упрощает жизнь.</p>
<p dir="auto">Вот какие методы были удалены:</p>
<ul>
<li><code>jQuery.isArray()</code> — вместо этого используйте <code>Array.isArray()</code></li>
<li><code>jQuery.trim()</code> — замените на встроенный <code>String.prototype.trim()</code></li>
<li><code>jQuery.parseJSON()</code> — используйте встроенный <code>JSON.parse()</code></li>
<li><code>jQuery.now()</code> — замените на <code>Date.now()</code></li>
<li>Вспомогательные методы для работы с CSS, которые дублируют встроенный API</li>
</ul>
<p dir="auto">Кроме того, из прототипа jQuery были удалены методы <code>push</code>, <code>sort</code> и <code>splice</code>, которые создавали путаницу с объектами jQuery. Эти изменения делают код чище и понятнее — вы точно знаете, что используете стандартный API браузера.</p>
<p dir="auto">Разработчики даже оптимизировали размер библиотеки. Slim-версия (без Ajax и анимации) теперь весит 19,5 КБ в gzip, а полная версия — 27,5 КБ. Это на 3 КБ меньше, чем раньше, и это при всех новых функциях безопасности.</p>
<h2>Отказ от поддержки старых браузеров</h2>
<p dir="auto">jQuery 4.0 больше не поддерживает Internet Explorer 10 и более ранние версии, Edge Legacy (версии до перехода на Chromium), а также старые мобильные браузеры. Internet Explorer 11 пока ещё работает, но это последний раз — в jQuery 5.0 поддержка IE 11 будет полностью удалена.</p>
<p dir="auto">Это решение логично объясняется простым фактом: эти браузеры давно устарели и их используют менее одного процента пользователей. Сохранять совместимость с ними означает писать более сложный код, использовать больше полифиллов и носить с собой легаси, который замедляет разработку.</p>
<p dir="auto">Список браузеров, которые больше не поддерживаются:</p>
<ul>
<li>Internet Explorer 10 и ниже (окончательно)</li>
<li>Internet Explorer 11 (поддержка остаётся, но будет удалена в 5.0)</li>
<li>Edge Legacy (до перехода на Chromium)</li>
<li>Firefox версии ниже современных</li>
<li>Очень старые версии iOS и браузера Android</li>
</ul>
<p dir="auto">Если вы работаете с устаревшими браузерами, вы можете продолжать использовать jQuery 3.x — она будет получать security-обновления и bug-фиксы.</p>
<h2>Улучшения безопасности: Trusted Types и CSP</h2>
<p dir="auto">В jQuery 4.0 добавлена поддержка <strong>Trusted Types</strong> — это стандарт безопасности, который помогает защитить приложение от XSS-атак. Trusted Types предотвращают небезопасное присваивание HTML-контента через методы вроде <code>innerHTML</code> или <code>eval</code>.</p>
<p dir="auto">Это особенно важно при использовании Content Security Policy (CSP) — набора правил, которые браузер применяет к скриптам и внешним ресурсам. Когда вы используете Trusted Types вместе с CSP, браузер отказывает в выполнении кода, который потенциально может быть вредоносным.</p>
<p dir="auto">Добавлена также поддержка модульных скриптов с типом <code>&lt;script type="module"&gt;</code> в поддерживаемых браузерах. Это позволяет использовать jQuery как нормальный ES-модуль в HTML без обёрток и хаков.</p>
<p dir="auto">Практические преимущества безопасности:</p>
<ul>
<li>Браузер автоматически блокирует попытки присвоить опасный HTML-контент</li>
<li>Лучшая совместимость с политиками Content Security Policy</li>
<li>Меньше проблем с XSS-уязвимостями при неосторожном использовании jQuery</li>
<li>Возможность использовать более строгие политики безопасности</li>
</ul>
<h2>Изменения в порядке событий focus/blur</h2>
<p dir="auto">В jQuery 4.0 изменился порядок срабатывания событий focus и blur. Теперь они соответствуют спецификации W3C и совпадают с поведением всех современных браузеров. Раньше jQuery переопределял это поведение по-своему, что могло привести к различиям между jQuery-кодом и чистым JavaScript.</p>
<p dir="auto">Это значит, что если у вас есть обработчики для событий focus или blur, они могут срабатывать в немного другом порядке. В большинстве случаев это не критично, но стоит проверить, как работает ваш код после обновления.</p>
<h2>Как перейти на jQuery 4.0</h2>
<p dir="auto">Хорошая новость в том, что разработчики jQuery обещают, что для большинства проектов переход будет безболезненным. Однако есть несколько вещей, которые стоит проверить:</p>
<ul>
<li>Если вы используете методы типа <code>jQuery.isArray()</code>, замените их на встроенные аналоги</li>
<li>Проверьте обработчики событий focus/blur на предмет возможных изменений в порядке срабатывания</li>
<li>Если вы используете Ajax, убедитесь, что изменённое поведение подходит вашему коду</li>
<li>Тестируйте приложение в актуальных версиях браузеров</li>
</ul>
<p dir="auto">Для упрощения миграции команда jQuery выпустила специальный плагин, который помогает выявить потенциальные проблемы при переходе с jQuery 3.x на 4.0.</p>
<h2>Нужно ли срочно обновляться?</h2>
<p dir="auto">Это вопрос, который зависит от вашего проекта. jQuery 4.0 — это разумная модернизация для команд, которые уже используют jQuery и хотят привести свой код в соответствие с современными стандартами. Библиотека стала безопаснее, производительнее и лучше совместима с новыми инструментами.</p>
<p dir="auto">Но это не причина, чтобы внедрять jQuery, если вы его ещё не используете. Если вы начинаете новый проект с современным фреймворком вроде React, Vue или Svelte, вам jQuery попросту не нужен. Встроенный JavaScript более чем достаточен для большинства задач.</p>
<p dir="auto">Для существующих приложений оценивайте обновление на основе требований безопасности, наличия зависимостей от плагинов и возможности провести тестирование. jQuery остаётся актуальным для миллионов production-приложений, и jQuery 4.0 доказывает, что проект продолжает развиваться вместе с веб-стандартами, а не остаётся музейным экспонатом.</p>
]]></description><link>https://forum.exlends.ru/topic/1704/jquery-4.0-es-moduli-i-otkaz-ot-dublirovaniya</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 04:06:17 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1704.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Mar 2026 15:54:57 GMT</pubDate><ttl>60</ttl></channel></rss>