jQuery 4.0.0
Publicado el 17 de enero de 2026 por Timmy Willison
El 14 de enero de 2006, John Resig presentó una biblioteca de JavaScript llamada jQuery en BarCamp en la ciudad de Nueva York. Ahora, 20 años después, el equipo de jQuery se complace en anunciar el lanzamiento final de jQuery 4.0.0. Después de un largo ciclo de desarrollo y varios lanzamientos previos, jQuery 4.0.0 trae muchas mejoras y modernizaciones. Es el primer lanzamiento de versión principal en casi 10 años e incluye algunos cambios que rompen la compatibilidad, así que asegúrate de leer los detalles a continuación antes de actualizar. Aún así, esperamos que la mayoría de los usuarios puedan actualizar con cambios mínimos en su código.
Muchos de los cambios que rompen la compatibilidad son los que el equipo ha querido hacer durante años, pero no podía hacerlo en un lanzamiento de parche o menor. Hemos eliminado código heredado, removido algunas APIs previamente deprecadas, eliminado algunos parámetros solo internos de funciones públicas que nunca fueron documentados, y dejamos de soportar algunos comportamientos “mágicos” que eran demasiado complicados.
Tenemos una guía de actualización y un lanzamiento del complemento jQuery Migrate listos para ayudar con la transición. Por favor, actualiza e infórmanos si encuentras algún problema.
Como es habitual, el lanzamiento está disponible en nuestro CDN y en el gestor de paquetes npm. Otros CDN de terceros probablemente lo tendrán disponible pronto también, pero recuerda que no controlamos sus calendarios de lanzamiento y necesitarán algo de tiempo. Aquí están los puntos destacados de jQuery 4.0.0.
Se eliminó el soporte para IE<11
jQuery 4.0 deja de soportar IE 10 y versiones anteriores. Algunos pueden preguntarse por qué no eliminamos el soporte para IE 11. Planeamos eliminar el soporte en etapas, y el siguiente paso se lanzará en jQuery 5.0. Por ahora, comenzaremos eliminando el código que soporta específicamente versiones de IE anteriores a la 11.
También dejamos de soportar otros navegadores muy antiguos, incluyendo Edge Legacy, versiones de iOS anteriores a las últimas 3, versiones de Firefox anteriores a las últimas 2 (aparte de Firefox ESR), y Android Browser. No se requieren cambios de tu parte. Si necesitas soportar alguno de estos navegadores, mantente con jQuery 3.x.
Tipos de confianza y CSP
jQuery 4.0 añade soporte para Trusted Types, asegurando que HTML envuelto en TrustedHTML pueda usarse como entrada a métodos de manipulación de jQuery de una manera que no viole la directiva de Política de Seguridad de Contenido require-trusted-types-for.
Junto con esto, aunque algunas solicitudes AJAX ya estaban usando etiquetas <script> para mantener atributos como crossdomain, desde entonces hemos cambiado la mayoría de solicitudes de script asincrónicas para usar etiquetas <script> para evitar cualquier error de CSP causado por el uso de scripts en línea. Todavía hay algunos casos donde se usa XHR para solicitudes de script asincrónicas, como cuando se pasa la opción "headers" (¡usa scriptAttrs en su lugar!), pero ahora usamos una etiqueta <script> siempre que sea posible.
Fuente de jQuery migrada a módulos ES
Fue un día especial cuando la fuente de jQuery en la rama main se migró de AMD a módulos ES. La fuente de jQuery siempre ha sido publicada con lanzamientos de jQuery en npm y GitHub, pero no podía ser importada directamente como módulos sin RequireJS, que era la herramienta de compilación elegida por jQuery. Desde entonces hemos cambiado a Rollup para empaquetar jQuery y ejecutamos todas las pruebas en los módulos ES por separado. Esto hace que jQuery sea compatible con herramientas de compilación modernas, flujos de trabajo de desarrollo, y navegadores mediante el uso de <script type=module>.
APIs deprecadas removidas
Estas funciones han sido deprecadas durante varias versiones. Es hora de eliminarlas ahora que hemos alcanzado un lanzamiento principal. Estas funciones eran siempre meant para ser internas o aquellas que ahora tienen equivalentes nativos en todos los navegadores soportados. Las funciones removidas incluyen:
jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps, y jQuery.fx.interval.
Usa equivalentes nativos como Array.isArray(), JSON.parse(), String.prototype.trim(), y Date.now() en su lugar.
La eliminación de APIs deprecadas combinada con la eliminación de código que soportaba IE antiguo resultó en una reducción de tamaño de más de 3k bytes comprimidos.
Métodos solo internos removidos del prototipo de jQuery
El prototipo de jQuery ha tenido durante mucho tiempo métodos de Array que no se comportaban como ningún otro método de jQuery y siempre fueron destinados solo para uso interno. Estos métodos son push, sort, y splice. Ahora han sido removidos del prototipo de jQuery. Si estabas usando estos métodos, $elems.push( elem ) puede ser reemplazado con [].push.call( $elems, elem ).
El orden de eventos de enfoque ahora sigue la especificación W3C
Durante mucho tiempo, los navegadores no estuvieron de acuerdo en el orden de los eventos de enfoque y desenfoque, que incluye focusin, focusout, focus, y blur. Finalmente, las últimas versiones de todos los navegadores que jQuery 4.0 soporta han convergido en un orden de eventos común. Desafortunadamente, difiere del orden consistente que jQuery había elegido años atrás, lo que hace que esto sea un cambio que rompe la compatibilidad. ¡Al menos todos estamos en la misma página ahora!
A partir de jQuery 4.0, ya no anulamos el comportamiento nativo. Esto significa que todos los navegadores excepto IE seguirán la especificación W3C actual, que es:
- blur
- focusout
- focus
- focusin
El orden de jQuery en versiones anteriores era: focusout, blur, focusin, focus. Irónicamente, el único navegador que alguna vez siguió la especificación W3C antigua (antes de que fuera actualizada en 2023) fue Internet Explorer.
Compilación slim actualizada
La compilación slim se ha hecho aún más pequeña en jQuery 4.0.0 con la eliminación de Deferreds y Callbacks (¡ahora alrededor de 19.5k bytes comprimidos!). Deferreds ha soportado durante mucho tiempo el estándar Promises A+, así que las Promises nativas pueden ser usadas en su lugar en la mayoría de los casos y están disponibles en todos los navegadores soportados por jQuery excepto IE11. Deferreds tiene algunas características adicionales que las Promises nativas no soportan, pero la mayoría del uso puede ser migrado a métodos de Promise. Si necesitas soportar IE11, es mejor usar la compilación principal o añadir un polyfill para Promises nativas.
Descargar
Puedes obtener los archivos del CDN de jQuery, o vincularlos directamente:
https://code.jquery.com/jquery-4.0.0.js
https://code.jquery.com/jquery-4.0.0.min.js
También puedes obtener este lanzamiento desde npm:
npm install jquery@4.0.0
Compilación slim
A veces no necesitas ajax, o prefieres usar una de las muchas bibliotecas independientes que se enfocan en solicitudes ajax. Y a menudo es más simple usar una combinación de CSS y manipulación de clases para animaciones web. Finalmente, todos los navegadores soportados por jQuery (excepto IE11) ahora tienen soporte para Promises nativas en todos los casos, así que Deferreds y Callbacks ya no son necesarios en la mayoría de los casos. Junto con la versión regular de jQuery que incluye todo, hemos lanzado una versión “slim” que excluye estos módulos. El tamaño de jQuery rara vez es una preocupación de rendimiento de carga estos días, pero la compilación slim es aproximadamente 8k bytes comprimidos más pequeña que la versión regular. Estos archivos también están disponibles en el paquete npm y en el CDN:
https://code.jquery.com/jquery-4.0.0.slim.js
https://code.jquery.com/jquery-4.0.0.slim.min.js
Estas actualizaciones ya están disponibles como las versiones actuales en npm y Bower. La información sobre todas las formas de obtener jQuery está disponible en https://jquery.com/download/. Los CDN públicos reciben sus copias hoy, por favor dale unos días para que publiquen los archivos. Si estás ansioso por comenzar rápidamente, usa los archivos en nuestro CDN hasta que tengan la oportunidad de actualizar.
enlace de publicación original aquí