{"id":167,"date":"2026-01-19T00:00:00","date_gmt":"2026-01-18T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/el\/jquery-4-0-0-ti-allazei-se-browsers-csp-es-modules-kai-breaking-changes\/"},"modified":"2026-01-19T00:00:00","modified_gmt":"2026-01-18T23:00:00","slug":"jquery-4-0-0-ti-allazei-se-browsers-csp-es-modules-kai-breaking-changes","status":"publish","type":"post","link":"https:\/\/helloblog.io\/el\/jquery-4-0-0-ti-allazei-se-browsers-csp-es-modules-kai-breaking-changes\/","title":{"rendered":"jQuery 4.0.0: \u03c4\u03b9 \u03b1\u03bb\u03bb\u03ac\u03b6\u03b5\u03b9 \u03c3\u03b5 browsers, CSP, ES modules \u03ba\u03b1\u03b9 breaking changes"},"content":{"rendered":"\n<p>\u03a3\u03c4\u03b9\u03c2 14 \u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5 2006 \u03bf John Resig \u03c0\u03b1\u03c1\u03bf\u03c5\u03c3\u03af\u03b1\u03c3\u03b5 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03ce\u03c4\u03b7 \u03c6\u03bf\u03c1\u03ac \u03c4\u03b7 jQuery \u03c3\u03b5 \u03ad\u03bd\u03b1 BarCamp \u03c3\u03c4\u03b7 \u039d\u03ad\u03b1 \u03a5\u03cc\u03c1\u03ba\u03b7. \u0395\u03af\u03ba\u03bf\u03c3\u03b9 \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1 \u03bc\u03b5\u03c4\u03ac, \u03b7 \u03bf\u03bc\u03ac\u03b4\u03b1 \u03c4\u03bf\u03c5 project \u03b1\u03bd\u03b1\u03ba\u03bf\u03af\u03bd\u03c9\u03c3\u03b5 \u03c4\u03bf <strong>\u03c4\u03b5\u03bb\u03b9\u03ba\u03cc release \u03c4\u03b7\u03c2 jQuery 4.0.0<\/strong> (\u03bc\u03b5\u03c4\u03ac \u03b1\u03c0\u03cc \u03bc\u03b1\u03ba\u03c1\u03cd \u03ba\u03cd\u03ba\u03bb\u03bf \u03b1\u03bd\u03ac\u03c0\u03c4\u03c5\u03be\u03b7\u03c2 \u03ba\u03b1\u03b9 \u03b1\u03c1\u03ba\u03b5\u03c4\u03ac pre-releases). \u0395\u03af\u03bd\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03ce\u03c4\u03b7 major \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 \u03c3\u03b5 \u03c3\u03c7\u03b5\u03b4\u03cc\u03bd 10 \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1 \u03ba\u03b1\u03b9, \u03cc\u03c0\u03c9\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bb\u03bf\u03b3\u03b9\u03ba\u03cc, \u03c0\u03b5\u03c1\u03b9\u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03b5\u03b9 <strong>breaking changes<\/strong>-\u03b1\u03bd \u03ba\u03b1\u03b9 \u03bf \u03c3\u03c4\u03cc\u03c7\u03bf\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bf\u03b9 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03bf\u03b9 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bd \u03b1\u03bd\u03b1\u03b2\u03ac\u03b8\u03bc\u03b9\u03c3\u03b7 \u03bc\u03b5 \u03b5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03b5\u03c2 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2.<\/p>\n\n\n\n<p>\u0397 \u03c6\u03b9\u03bb\u03bf\u03c3\u03bf\u03c6\u03af\u03b1 \u03c4\u03b7\u03c2 4.0 \u03b5\u03af\u03bd\u03b1\u03b9 \u03be\u03b5\u03ba\u03ac\u03b8\u03b1\u03c1\u03b7: \u03bd\u03b1 \u03ba\u03bf\u03c0\u03b5\u03af legacy \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2 \u03c0\u03bf\u03c5 \u00ab\u03ba\u03c1\u03b1\u03c4\u03bf\u03cd\u03c3\u03b5 \u03c0\u03af\u03c3\u03c9\u00bb \u03c4\u03bf project, \u03bd\u03b1 \u03b1\u03c6\u03b1\u03b9\u03c1\u03b5\u03b8\u03bf\u03cd\u03bd APIs \u03c0\u03bf\u03c5 \u03b5\u03af\u03c7\u03b1\u03bd \u03ae\u03b4\u03b7 deprecated \u03b5\u03b4\u03ce \u03ba\u03b1\u03b9 \u03b5\u03ba\u03b4\u03cc\u03c3\u03b5\u03b9\u03c2, \u03bd\u03b1 \u03ba\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03c4\u03bf\u03cd\u03bd public signatures \u03b1\u03c0\u03cc \u03b5\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03ad\u03c2\/\u03b1\u03c4\u03b5\u03ba\u03bc\u03b7\u03c1\u03af\u03c9\u03c4\u03b5\u03c2 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5\u03c2 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03b9\u03c3\u03c4\u03bf\u03cd\u03bd \u03b4\u03b9\u03ac\u03c6\u03bf\u03c1\u03b1 \u201cmagic\u201d behaviors \u03c0\u03bf\u03c5 \u03ae\u03c4\u03b1\u03bd \u03c5\u03c0\u03b5\u03c1\u03b2\u03bf\u03bb\u03b9\u03ba\u03ac \u03c0\u03bf\u03bb\u03cd\u03c0\u03bb\u03bf\u03ba\u03b1 \u03c3\u03c4\u03b7 \u03c3\u03c5\u03bd\u03c4\u03ae\u03c1\u03b7\u03c3\u03b7.<\/p>\n\n\n\n<p>\u0393\u03b9\u03b1 \u03c4\u03b7 \u03bc\u03b5\u03c4\u03ac\u03b2\u03b1\u03c3\u03b7, \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03ae\u03b4\u03b7 \u03ad\u03c4\u03bf\u03b9\u03bc\u03b1 \u03b4\u03cd\u03bf \u03b2\u03b1\u03c3\u03b9\u03ba\u03ac \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1: \u03c4\u03bf <strong>upgrade guide<\/strong> \u03ba\u03b1\u03b9 \u03c4\u03bf <strong>jQuery Migrate plugin<\/strong>. \u0391\u03bd \u03c3\u03c5\u03bd\u03b1\u03bd\u03c4\u03ae\u03c3\u03b5\u03b9\u03c2 \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03b1 \u03c3\u03c4\u03bf upgrade, \u03b7 \u03bf\u03bc\u03ac\u03b4\u03b1 \u03b6\u03b7\u03c4\u03ac \u03bd\u03b1 \u03c4\u03b1 \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9\u03c2 \u03c3\u03c4\u03bf issue tracker.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Upgrade guide: https:\/\/jquery.com\/upgrade-guide\/4.0\/<\/li>\n\n\n<li>jQuery Migrate plugin release: https:\/\/github.com\/jquery\/jquery-migrate\/<\/li>\n\n\n<li>Issue tracker: https:\/\/github.com\/jquery\/jquery\/issues<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u0394\u03b9\u03b1\u03b8\u03b5\u03c3\u03b9\u03bc\u03cc\u03c4\u03b7\u03c4\u03b1: CDN \u03ba\u03b1\u03b9 npm (\u03ba\u03b1\u03b9 \u03c4\u03b9 \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03b1 3rd party CDNs)<\/h2>\n\n\n\n<p>\u0397 4.0.0 \u03b4\u03b9\u03b1\u03c4\u03af\u03b8\u03b5\u03c4\u03b1\u03b9 \u03ba\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03ac \u03c3\u03c4\u03bf \u03b5\u03c0\u03af\u03c3\u03b7\u03bc\u03bf CDN \u03c4\u03b7\u03c2 jQuery \u03ba\u03b1\u03b9 \u03c9\u03c2 \u03c0\u03b1\u03ba\u03ad\u03c4\u03bf \u03c3\u03c4\u03bf npm. \u03a4\u03b1 third-party CDNs \u03b1\u03bd\u03b1\u03bc\u03ad\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03ae\u03c3\u03bf\u03c5\u03bd, \u03b1\u03bb\u03bb\u03ac \u03b4\u03b5\u03bd \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03bf\u03bc\u03ac\u03b4\u03b1 \u03c4\u03bf\u03c5 jQuery, \u03bf\u03c0\u03cc\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c6\u03c5\u03c3\u03b9\u03bf\u03bb\u03bf\u03b3\u03b9\u03ba\u03cc \u03bd\u03b1 \u03c5\u03c0\u03ac\u03c1\u03be\u03b5\u03b9 \u03ba\u03b1\u03b8\u03c5\u03c3\u03c4\u03ad\u03c1\u03b7\u03c3\u03b7 \u03bc\u03b5\u03c1\u03b9\u03ba\u03ce\u03bd \u03b7\u03bc\u03b5\u03c1\u03ce\u03bd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0386\u03bc\u03b5\u03c3\u03b1 links \u03b3\u03b9\u03b1 download<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.js<\/li>\n\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.min.js<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b1\u03c0\u03cc npm<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>npm install jquery@4.0.0\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">npm<\/span><span style=\"color:#9ECBFF\"> install<\/span><span style=\"color:#9ECBFF\"> jquery@4.0.0<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0393\u03b9\u03b1 \u03cc\u03bb\u03bf\u03c5\u03c2 \u03c4\u03bf\u03c5\u03c2 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03bf\u03c5\u03c2 \u03c4\u03c1\u03cc\u03c0\u03bf\u03c5\u03c2 \u03b1\u03c0\u03cc\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2\/\u03b5\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7\u03c2, \u03b7 \u03b5\u03c0\u03af\u03c3\u03b7\u03bc\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03bd\u03b5\u03b9 \u03c4\u03bf \u03c3\u03b7\u03bc\u03b5\u03af\u03bf \u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac\u03c2: https:\/\/jquery.com\/download\/<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u03a4\u03ad\u03bb\u03bf\u03c2 \u03b5\u03c0\u03bf\u03c7\u03ae\u03c2: \u03b1\u03c6\u03b1\u03b9\u03c1\u03b5\u03af\u03c4\u03b1\u03b9 \u03b7 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 \u03b3\u03b9\u03b1 IE < 11 (\u03ba\u03b1\u03b9 \u03c4\u03b9 \u03ad\u03c1\u03c7\u03b5\u03c4\u03b1\u03b9 \u03bc\u03b5\u03c4\u03ac)<\/h2>\n\n\n\n<p>\u03a4\u03bf \u03c0\u03b9\u03bf \u03c3\u03c5\u03bc\u03b2\u03bf\u03bb\u03b9\u03ba\u03cc (\u03ba\u03b1\u03b9 \u03c0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03cc) \u03b2\u03ae\u03bc\u03b1 \u03c4\u03b7\u03c2 4.0 \u03b5\u03af\u03bd\u03b1\u03b9 \u03cc\u03c4\u03b9 <strong>\u03ba\u03cc\u03b2\u03b5\u03c4\u03b1\u03b9 \u03b7 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 \u03b3\u03b9\u03b1 IE 10 \u03ba\u03b1\u03b9 \u03c0\u03b1\u03bb\u03b1\u03b9\u03cc\u03c4\u03b5\u03c1\u03bf\u03c5\u03c2<\/strong>. \u0395\u03cd\u03bb\u03bf\u03b3\u03b1 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03b9 \u03b8\u03b1 \u03c1\u03c9\u03c4\u03ae\u03c3\u03bf\u03c5\u03bd \u03b3\u03b9\u03b1\u03c4\u03af \u03cc\u03c7\u03b9 \u03ba\u03b1\u03b9 IE 11: \u03b7 \u03bf\u03bc\u03ac\u03b4\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03b5\u03b9 \u03bd\u03b1 \u03c4\u03bf \u03ba\u03ac\u03bd\u03b5\u03b9 <strong>\u03c3\u03c4\u03b1\u03b4\u03b9\u03b1\u03ba\u03ac<\/strong>, \u03bc\u03b5 \u03c4\u03bf \u03b5\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03b2\u03ae\u03bc\u03b1 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 \u03b4\u03c1\u03bf\u03bc\u03bf\u03bb\u03bf\u03b3\u03b7\u03b8\u03b5\u03af \u03b3\u03b9\u03b1 <strong>jQuery 5.0<\/strong> (\u03bc\u03ad\u03c3\u03c9 \u03c4\u03bf\u03c5 PR \u03c0\u03bf\u03c5 \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03bf GitHub). \u0393\u03b9\u03b1 \u03c4\u03b7\u03bd \u03ce\u03c1\u03b1, \u03b1\u03c6\u03b1\u03b9\u03c1\u03b5\u03af\u03c4\u03b1\u03b9 \u03b5\u03b9\u03b4\u03b9\u03ba\u03ac \u03bf \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2 \u03c0\u03bf\u03c5 \u03c3\u03c4\u03cc\u03c7\u03b5\u03c5\u03b5 IE \u03b5\u03ba\u03b4\u03cc\u03c3\u03b5\u03b9\u03c2 \u03c0\u03b1\u03bb\u03b1\u03b9\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c4\u03bf\u03c5 11.<\/p>\n\n\n\n<p>\u039c\u03b1\u03b6\u03af \u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc, \u03ba\u03cc\u03b2\u03b5\u03c4\u03b1\u03b9 \u03b5\u03c0\u03af\u03c3\u03b7\u03c2 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 \u03b3\u03b9\u03b1 \u03b1\u03c1\u03ba\u03b5\u03c4\u03bf\u03cd\u03c2 \u03c0\u03bf\u03bb\u03cd \u03c0\u03b1\u03bb\u03b9\u03bf\u03cd\u03c2 browsers: <strong>Edge Legacy<\/strong>, <strong>iOS \u03c0\u03b1\u03bb\u03b1\u03b9\u03cc\u03c4\u03b5\u03c1\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b9\u03c2 \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b5\u03c2 3 \u03b5\u03ba\u03b4\u03cc\u03c3\u03b5\u03b9\u03c2<\/strong>, <strong>Firefox \u03c0\u03b1\u03bb\u03b1\u03b9\u03cc\u03c4\u03b5\u03c1\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b9\u03c2 \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b5\u03c2 2 \u03b5\u03ba\u03b4\u03cc\u03c3\u03b5\u03b9\u03c2<\/strong> (\u03b5\u03ba\u03c4\u03cc\u03c2 \u03b1\u03c0\u03cc <strong>Firefox ESR<\/strong>), \u03ba\u03b1\u03b8\u03ce\u03c2 \u03ba\u03b1\u03b9 <strong>Android Browser<\/strong>. \u03a3\u03cd\u03bc\u03c6\u03c9\u03bd\u03b1 \u03bc\u03b5 \u03c4\u03bf release post, \u03b4\u03b5\u03bd \u03b8\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c7\u03c1\u03b5\u03b9\u03b1\u03c3\u03c4\u03b5\u03af \u03ba\u03ac\u03c0\u03bf\u03b9\u03b1 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03b1\u03c0\u03cc \u03c4\u03b7 \u03bc\u03b5\u03c1\u03b9\u03ac \u03c3\u03bf\u03c5-\u03b1\u03bb\u03bb\u03ac \u03b1\u03bd \u03ad\u03c7\u03b5\u03b9\u03c2 \u03c0\u03c1\u03b1\u03b3\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae \u03b1\u03bd\u03ac\u03b3\u03ba\u03b7 \u03bd\u03b1 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03be\u03b5\u03b9\u03c2 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03bd \u03b1\u03c0\u03cc \u03b1\u03c5\u03c4\u03bf\u03cd\u03c2 \u03c4\u03bf\u03c5\u03c2 browsers, \u03b7 \u03c3\u03cd\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bd\u03b1 \u03bc\u03b5\u03af\u03bd\u03b5\u03b9\u03c2 \u03c3\u03c4\u03b7 <strong>jQuery 3.x<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Trusted Types \u03ba\u03b1\u03b9 CSP: \u03c0\u03b9\u03bf \u00ab\u03b1\u03c3\u03c6\u03b1\u03bb\u03ad\u03c2\u00bb DOM manipulation \u03ba\u03b1\u03b9 \u03bb\u03b9\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1 CSP pitfalls<\/h2>\n\n\n\n<p>\u0397 jQuery 4.0 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c4\u03b5\u03b9 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 \u03b3\u03b9\u03b1 <strong>Trusted Types<\/strong>. \u0391\u03bd \u03b4\u03bf\u03c5\u03bb\u03b5\u03cd\u03b5\u03b9\u03c2 \u03bc\u03b5 \u03b1\u03c5\u03c3\u03c4\u03b7\u03c1\u03ac security headers, \u03b1\u03c5\u03c4\u03cc \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03b7\u03bc\u03b1\u03bd\u03c4\u03b9\u03ba\u03cc: \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 HTML \u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03c5\u03bb\u03b9\u03b3\u03bc\u03ad\u03bd\u03bf \u03c3\u03b5 <strong>TrustedHTML<\/strong> (\u03c4\u03bf \u03b1\u03bd\u03c4\u03af\u03c3\u03c4\u03bf\u03b9\u03c7\u03bf Web API \u03c3\u03c4\u03bf MDN) \u03bd\u03b1 \u03c0\u03b5\u03c1\u03bd\u03ac \u03c9\u03c2 input \u03c3\u03b5 \u03bc\u03b5\u03b8\u03cc\u03b4\u03bf\u03c5\u03c2 DOM manipulation \u03c4\u03b7\u03c2 jQuery \u03c7\u03c9\u03c1\u03af\u03c2 \u03bd\u03b1 \u03c0\u03b1\u03c1\u03b1\u03b2\u03b9\u03ac\u03b6\u03b5\u03b9 \u03c4\u03b7\u03bd \u03bf\u03b4\u03b7\u03b3\u03af\u03b1 <code>require-trusted-types-for<\/code> \u03c4\u03bf\u03c5 <strong>Content Security Policy (CSP)<\/strong>.<\/p>\n\n\n\n<p>\u0395\u03c0\u03b9\u03c0\u03bb\u03ad\u03bf\u03bd, \u03b7 \u03bf\u03bc\u03ac\u03b4\u03b1 \u03ad\u03ba\u03b1\u03bd\u03b5 \u03bc\u03b9\u03b1 \u03c0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03c4\u03bf\u03bd \u03c4\u03c1\u03cc\u03c0\u03bf \u03c0\u03bf\u03c5 \u03c6\u03bf\u03c1\u03c4\u03ce\u03bd\u03bf\u03bd\u03c4\u03b1\u03b9 scripts \u03c3\u03b5 \u03b1\u03c1\u03ba\u03b5\u03c4\u03ad\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 AJAX: \u03c0\u03b1\u03c1\u03cc\u03c4\u03b9 \u03c5\u03c0\u03ae\u03c1\u03c7\u03b1\u03bd \u03ae\u03b4\u03b7 requests \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03c3\u03b1\u03bd <code>&lt;script&gt;<\/code> tags (\u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03c4\u03b7\u03c1\u03bf\u03cd\u03bd attributes \u03cc\u03c0\u03c9\u03c2 <code>crossdomain<\/code>), \u03c0\u03bb\u03ad\u03bf\u03bd <strong>\u03c4\u03b1 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1 asynchronous script requests<\/strong> \u03b3\u03af\u03bd\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bc\u03b5 <code>&lt;script&gt;<\/code> tags \u03ce\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03c6\u03b5\u03cd\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 CSP errors \u03c0\u03bf\u03c5 \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bd \u03bd\u03b1 \u03c0\u03c1\u03bf\u03ba\u03cd\u03c8\u03bf\u03c5\u03bd \u03b1\u03c0\u03cc inline scripts.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">\u03a3\u03b7\u03bc\u03b5\u03af\u03c9\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03bf transport scripts<\/h4>\n\n\n<p>\u03a5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03b1\u03ba\u03cc\u03bc\u03b1 \u03bb\u03af\u03b3\u03b5\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03cc\u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b1\u03b9 XHR \u03b3\u03b9\u03b1 asynchronous script requests-\u03c0.\u03c7. \u03cc\u03c4\u03b1\u03bd \u03c0\u03b5\u03c1\u03bd\u03ac\u03c2 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae <code>&quot;headers&quot;<\/code>. \u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03b5\u03bd\u03ac\u03c1\u03b9\u03bf \u03b7 \u03c3\u03cd\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2 <code>scriptAttrs<\/code> \u03b1\u03bd\u03c4\u03af \u03b3\u03b9\u03b1 <code>headers<\/code>. \u0393\u03b5\u03bd\u03b9\u03ba\u03ac, \u03cc\u03c0\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc, \u03c0\u03bb\u03ad\u03bf\u03bd \u03c0\u03c1\u03bf\u03c4\u03b9\u03bc\u03ac\u03c4\u03b1\u03b9 <code>&lt;script&gt;<\/code> tag.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u039f \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2 \u03c4\u03b7\u03c2 jQuery \u03bc\u03b5\u03c4\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 ES modules: \u03c4\u03ad\u03bb\u03bf\u03c2 \u03c3\u03c4\u03bf AMD \u03c9\u03c2 \u03b5\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03ae \u03b2\u03ac\u03c3\u03b7<\/h2>\n\n\n\n<p>\u039c\u03af\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b9\u03c2 \u03c0\u03b9\u03bf \u00ab\u03bc\u03bf\u03bd\u03c4\u03ad\u03c1\u03bd\u03b5\u03c2\u00bb \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03cc\u03c4\u03b9 \u03c4\u03bf source \u03c4\u03b7\u03c2 jQuery \u03c3\u03c4\u03bf branch <code>main<\/code> \u03bc\u03b5\u03c4\u03b1\u03c6\u03ad\u03c1\u03b8\u03b7\u03ba\u03b5 \u03b1\u03c0\u03cc <strong>AMD<\/strong> \u03c3\u03b5 <strong>ES modules (ESM)<\/strong>. \u0399\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03ac, \u03bf \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2 \u03b4\u03b7\u03bc\u03bf\u03c3\u03b9\u03b5\u03c5\u03cc\u03c4\u03b1\u03bd \u03c3\u03c4\u03bf npm \u03ba\u03b1\u03b9 \u03c3\u03c4\u03bf GitHub, \u03b1\u03bb\u03bb\u03ac \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03c3\u03b5 \u03bd\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 import \u00ab\u03ba\u03b1\u03c4\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03bd\u00bb \u03c9\u03c2 modules \u03c7\u03c9\u03c1\u03af\u03c2 <strong>RequireJS<\/strong>-\u03c4\u03bf \u03bf\u03c0\u03bf\u03af\u03bf \u03ae\u03c4\u03b1\u03bd \u03ba\u03b1\u03b9 \u03c4\u03bf build tool \u03c4\u03b7\u03c2 jQuery.<\/p>\n\n\n\n<p>\u03a0\u03bb\u03ad\u03bf\u03bd \u03c4\u03bf packaging \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bc\u03b5 <strong>Rollup<\/strong> \u03ba\u03b1\u03b9 (\u03c3\u03b7\u03bc\u03b1\u03bd\u03c4\u03b9\u03ba\u03cc \u03b3\u03b9\u03b1 \u03cc\u03c3\u03bf\u03c5\u03c2 \u03ad\u03c7\u03bf\u03c5\u03bd CI \u03b1\u03c0\u03b1\u03b9\u03c4\u03ae\u03c3\u03b5\u03b9\u03c2) \u03b7 \u03bf\u03bc\u03ac\u03b4\u03b1 \u03c4\u03c1\u03ad\u03c7\u03b5\u03b9 tests \u03ba\u03b1\u03b9 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b1 ES modules \u03be\u03b5\u03c7\u03c9\u03c1\u03b9\u03c3\u03c4\u03ac. \u0391\u03c5\u03c4\u03cc \u03ba\u03ac\u03bd\u03b5\u03b9 \u03c4\u03b7 jQuery \u03c0\u03b9\u03bf \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03ae \u03bc\u03b5 \u03c3\u03cd\u03b3\u03c7\u03c1\u03bf\u03bd\u03b1 build tools \u03ba\u03b1\u03b9 workflows, \u03b1\u03bb\u03bb\u03ac \u03ba\u03b1\u03b9 \u03bc\u03b5 browsers \u03c0\u03bf\u03c5 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03bf\u03c5\u03bd <code>&lt;script type=module&gt;<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deprecated APIs: \u03c4\u03b9 \u03b1\u03c6\u03b1\u03b9\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03ba\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03b9 \u03c4\u03bf \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03b8\u03b9\u03c3\u03c4\u03ac\u03c2<\/h2>\n\n\n\n<p>\u03a3\u03b5 major \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7, \u03c4\u03bf project \u03b5\u03ba\u03bc\u03b5\u03c4\u03b1\u03bb\u03bb\u03b5\u03cd\u03b5\u03c4\u03b1\u03b9 \u03c4\u03b7\u03bd \u03b5\u03c5\u03ba\u03b1\u03b9\u03c1\u03af\u03b1 \u03bd\u03b1 \u03ba\u03b1\u03b8\u03b1\u03c1\u03af\u03c3\u03b5\u03b9 APIs \u03c0\u03bf\u03c5 \u03ae\u03c4\u03b1\u03bd deprecated \u03b3\u03b9\u03b1 \u03b1\u03c1\u03ba\u03b5\u03c4\u03ad\u03c2 \u03b5\u03ba\u03b4\u03cc\u03c3\u03b5\u03b9\u03c2. \u03a3\u03c4\u03b7 4.0 \u03b1\u03c6\u03b1\u03b9\u03c1\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 functions \u03c0\u03bf\u03c5 \u03b5\u03af\u03c4\u03b5 \u03ae\u03c4\u03b1\u03bd \u03b5\u03be\u03b1\u03c1\u03c7\u03ae\u03c2 \u03c0\u03b9\u03bf \u00ab\u03b5\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03ad\u03c2\u00bb \u03b1\u03c0\u2019 \u03cc\u03c3\u03bf \u03b8\u03b1 \u03ad\u03c0\u03c1\u03b5\u03c0\u03b5, \u03b5\u03af\u03c4\u03b5 \u03c0\u03bb\u03ad\u03bf\u03bd \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03bb\u03ae\u03c1\u03c9\u03c2 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 native equivalents \u03c3\u03b5 \u03cc\u03bb\u03bf\u03c5\u03c2 \u03c4\u03bf\u03c5\u03c2 browsers \u03c0\u03bf\u03c5 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03b7 4.0.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0397 \u03bb\u03af\u03c3\u03c4\u03b1 \u03c4\u03c9\u03bd \u03b1\u03c6\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03c9\u03bd<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>jQuery.isArray<\/code><\/li>\n\n\n<li><code>jQuery.parseJSON<\/code><\/li>\n\n\n<li><code>jQuery.trim<\/code><\/li>\n\n\n<li><code>jQuery.type<\/code><\/li>\n\n\n<li><code>jQuery.now<\/code><\/li>\n\n\n<li><code>jQuery.isNumeric<\/code><\/li>\n\n\n<li><code>jQuery.isFunction<\/code><\/li>\n\n\n<li><code>jQuery.isWindow<\/code><\/li>\n\n\n<li><code>jQuery.camelCase<\/code><\/li>\n\n\n<li><code>jQuery.nodeName<\/code><\/li>\n\n\n<li><code>jQuery.cssNumber<\/code><\/li>\n\n\n<li><code>jQuery.cssProps<\/code><\/li>\n\n\n<li><code>jQuery.fx.interval<\/code><\/li>\n\n<\/ul>\n\n\n\n<p>\u03a3\u03c4\u03b9\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2, \u03b7 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 straightforward \u03bc\u03b5 native APIs \u03cc\u03c0\u03c9\u03c2 <code>Array.isArray()<\/code>, <code>JSON.parse()<\/code>, <code>String.prototype.trim()<\/code> \u03ba\u03b1\u03b9 <code>Date.now()<\/code>.<\/p>\n\n\n\n<p>\u0388\u03bd\u03b1 \u03c0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03cc \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03c4\u03bf\u03c5 \u00ab\u03ba\u03b1\u03b8\u03b1\u03c1\u03af\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2\u00bb (\u03bc\u03b1\u03b6\u03af \u03bc\u03b5 \u03c4\u03b7\u03bd \u03b1\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 IE legacy code) \u03b5\u03af\u03bd\u03b1\u03b9 \u03cc\u03c4\u03b9 \u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 \u03bc\u03b5\u03b9\u03ce\u03b8\u03b7\u03ba\u03b5 \u03c3\u03b5 \u03bc\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03ba\u03b1\u03c4\u03ac <strong>\u03c0\u03ac\u03bd\u03c9 \u03b1\u03c0\u03cc 3k bytes gzipped<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 internal-only \u03bc\u03b5\u03b8\u03cc\u03b4\u03c9\u03bd \u03b1\u03c0\u03cc \u03c4\u03bf jQuery prototype (push\/sort\/splice)<\/h2>\n\n\n\n<p>\u03a4\u03bf jQuery prototype (\u03b4\u03b7\u03bb\u03b1\u03b4\u03ae \u03c4\u03bf <code>jQuery.fn<\/code>) \u03ba\u03bf\u03c5\u03b2\u03b1\u03bb\u03bf\u03cd\u03c3\u03b5 \u03b3\u03b9\u03b1 \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1 \u03ba\u03ac\u03c0\u03bf\u03b9\u03b5\u03c2 Array \u03bc\u03b5\u03b8\u03cc\u03b4\u03bf\u03c5\u03c2 \u03c0\u03bf\u03c5 <strong>\u03b4\u03b5\u03bd \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03bf\u03bd\u03c4\u03b1\u03bd \u03cc\u03c0\u03c9\u03c2 \u03c4\u03b1 \u03c5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03b1 chainable jQuery methods<\/strong> \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03ac\u03be\u03b7 \u03ae\u03c4\u03b1\u03bd \u03b3\u03b9\u03b1 internal \u03c7\u03c1\u03ae\u03c3\u03b7. \u03a3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b1: <code>push<\/code>, <code>sort<\/code>, <code>splice<\/code>. \u03a3\u03c4\u03b7 4.0 \u03b1\u03c6\u03b1\u03b9\u03c1\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9.<\/p>\n\n\n\n<p>\u0391\u03bd (\u03ba\u03b1\u03ba\u03ce\u03c2, \u03b1\u03bb\u03bb\u03ac \u03c3\u03c5\u03bc\u03b2\u03b1\u03af\u03bd\u03b5\u03b9 \u03c3\u03b5 legacy codebases) \u03c4\u03b9\u03c2 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03c3\u03b5\u03c2 \u03b1\u03c0\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03c2, \u03b7 \u03bf\u03bc\u03ac\u03b4\u03b1 \u03b4\u03af\u03bd\u03b5\u03b9 \u03ba\u03b1\u03b9 \u03c0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2. \u0393\u03b9\u03b1 \u03c0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1, \u03b1\u03c5\u03c4\u03cc:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$elems.push( elem );\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#E1E4E8\">$elems.<\/span><span style=\"color:#B392F0\">push<\/span><span style=\"color:#E1E4E8\">( elem );<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03b1\u03b8\u03b5\u03af \u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>[].push.call( $elems, elem );\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#E1E4E8\">[].push.<\/span><span style=\"color:#B392F0\">call<\/span><span style=\"color:#E1E4E8\">( $elems, elem );<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Focus\/blur event order: \u03c4\u03ce\u03c1\u03b1 \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af\u03c4\u03b1\u03b9 \u03c4\u03bf W3C spec (breaking change)<\/h2>\n\n\n\n<p>\u0393\u03b9\u03b1 \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1, \u03c4\u03b1 browsers \u03b4\u03b5\u03bd \u03c3\u03c5\u03bc\u03c6\u03c9\u03bd\u03bf\u03cd\u03c3\u03b1\u03bd \u03c3\u03c4\u03b7 \u03c3\u03b5\u03b9\u03c1\u03ac \u03c0\u03bf\u03c5 \u03c0\u03c5\u03c1\u03bf\u03b4\u03bf\u03c4\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c4\u03b1 focus-related events (<code>focusin<\/code>, <code>focusout<\/code>, <code>focus<\/code>, <code>blur<\/code>). \u03a3\u03c4\u03b1\u03b4\u03b9\u03b1\u03ba\u03ac, \u03bf\u03b9 \u03c0\u03b9\u03bf \u03c0\u03c1\u03cc\u03c3\u03c6\u03b1\u03c4\u03b5\u03c2 \u03b5\u03ba\u03b4\u03cc\u03c3\u03b5\u03b9\u03c2 \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd browsers \u03c0\u03bf\u03c5 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03b7 jQuery 4.0 \u03ba\u03b1\u03c4\u03ad\u03bb\u03b7\u03be\u03b1\u03bd \u03bd\u03b1 \u03c3\u03c5\u03b3\u03ba\u03bb\u03af\u03bd\u03bf\u03c5\u03bd \u03c3\u03b5 \u03ba\u03bf\u03b9\u03bd\u03ae \u03c3\u03b5\u03b9\u03c1\u03ac-\u03cc\u03bc\u03c9\u03c2 \u03b1\u03c5\u03c4\u03ae <strong>\u03b4\u03b9\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9<\/strong> \u03b1\u03c0\u03cc \u03c4\u03b7 \u03c3\u03b5\u03b9\u03c1\u03ac \u03c0\u03bf\u03c5 \u03b7 jQuery \u03b5\u03af\u03c7\u03b5 \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03b5\u03b9 \u03c0\u03b1\u03bb\u03b9\u03cc\u03c4\u03b5\u03c1\u03b1 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03c6\u03ad\u03c1\u03b5\u03b9 \u03c3\u03c5\u03bd\u03ad\u03c0\u03b5\u03b9\u03b1.<\/p>\n\n\n\n<p>\u0391\u03c0\u03cc \u03c4\u03b7 jQuery 4.0 \u03ba\u03b1\u03b9 \u03bc\u03b5\u03c4\u03ac, \u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 <strong>\u03c3\u03c4\u03b1\u03bc\u03b1\u03c4\u03ac \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03b9 override \u03c4\u03b7 native \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03c6\u03bf\u03c1\u03ac<\/strong>. \u0391\u03c5\u03c4\u03cc \u03c3\u03b7\u03bc\u03b1\u03af\u03bd\u03b5\u03b9 \u03cc\u03c4\u03b9 \u03cc\u03bb\u03b1 \u03c4\u03b1 browsers <strong>\u03b5\u03ba\u03c4\u03cc\u03c2 \u03b1\u03c0\u03cc IE<\/strong> \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03bf\u03cd\u03bd \u03c4\u03bf \u03c4\u03c1\u03ad\u03c7\u03bf\u03bd W3C specification (\u03cc\u03c0\u03c9\u03c2 \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03bf release post) \u03bc\u03b5 \u03c3\u03b5\u03b9\u03c1\u03ac:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>blur<\/li>\n\n\n<li>focusout<\/li>\n\n\n<li>focus<\/li>\n\n\n<li>focusin<\/li>\n\n<\/ol>\n\n\n\n<p>\u03a3\u03c4\u03b9\u03c2 \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b5\u03c2 \u03b5\u03ba\u03b4\u03cc\u03c3\u03b5\u03b9\u03c2 \u03c4\u03b7\u03c2 jQuery \u03b7 \u03c3\u03b5\u03b9\u03c1\u03ac \u03ae\u03c4\u03b1\u03bd: <code>focusout<\/code>, <code>blur<\/code>, <code>focusin<\/code>, <code>focus<\/code>. \u0388\u03c7\u03b5\u03b9 \u03b5\u03bd\u03b4\u03b9\u03b1\u03c6\u03ad\u03c1\u03bf\u03bd \u03cc\u03c4\u03b9 \u03bf \u03bc\u03cc\u03bd\u03bf\u03c2 browser \u03c0\u03bf\u03c5 \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03bf\u03cd\u03c3\u03b5 \u03c4\u03bf \u03c0\u03b1\u03bb\u03b9\u03cc W3C spec (\u03c0\u03c1\u03b9\u03bd \u03c4\u03b7\u03bd \u03b1\u03bd\u03b1\u03bd\u03ad\u03c9\u03c3\u03ae \u03c4\u03bf\u03c5 \u03c4\u03bf 2023) \u03ae\u03c4\u03b1\u03bd \u03bf Internet Explorer.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-warning is-style-warning is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">\u03a0\u03bf\u03cd \u03c3\u03b5 \u03b5\u03c0\u03b7\u03c1\u03b5\u03ac\u03b6\u03b5\u03b9 \u03c0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03ac<\/h4>\n\n\n<p>\u0391\u03bd \u03ad\u03c7\u03b5\u03b9\u03c2 handlers \u03c0\u03bf\u03c5 \u03b2\u03b1\u03c3\u03af\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b7 \u03c3\u03b5\u03b9\u03c1\u03ac focus\/blur (\u03c0.\u03c7. validation flows \u03ae UI state transitions), \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 regression tests \u03bc\u03b5 jQuery 4.0. \u0395\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b1 \u03c0\u03b9\u03bf \u00ab\u03cd\u03c0\u03bf\u03c5\u03bb\u03b1\u00bb breaking changes \u03b3\u03b9\u03b1\u03c4\u03af \u03b4\u03b5\u03bd \u03c6\u03b1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03bf build \u03b1\u03bb\u03bb\u03ac \u03c3\u03c4\u03bf runtime behavior.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Slim build: \u03bc\u03b9\u03ba\u03c1\u03cc\u03c4\u03b5\u03c1\u03bf \u03ba\u03b1\u03b9 \u03c7\u03c9\u03c1\u03af\u03c2 Deferreds\/Callbacks (\u03ba\u03b1\u03b9 \u03c4\u03b9 \u03c3\u03b7\u03bc\u03b1\u03af\u03bd\u03b5\u03b9 \u03b3\u03b9\u03b1 Promises)<\/h2>\n\n\n\n<p>\u0397 jQuery \u03ad\u03c7\u03b5\u03b9 \u03b5\u03b4\u03ce \u03ba\u03b1\u03b9 \u03ba\u03b1\u03b9\u03c1\u03cc slim build \u03b3\u03b9\u03b1 \u03c0\u03b5\u03c1\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03cc\u03c0\u03bf\u03c5 \u03b4\u03b5\u03bd \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c3\u03b1\u03b9 \u03cc\u03bb\u03bf \u03c4\u03bf \u03c0\u03b1\u03ba\u03ad\u03c4\u03bf. \u03a3\u03c4\u03b7 4.0.0 \u03c4\u03bf slim \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03b1\u03ba\u03cc\u03bc\u03b1 \u03bc\u03b9\u03ba\u03c1\u03cc\u03c4\u03b5\u03c1\u03bf, \u03b1\u03c6\u03bf\u03cd \u03b1\u03c6\u03b1\u03b9\u03c1\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c4\u03b1 <strong>Deferreds<\/strong> \u03ba\u03b1\u03b9 \u03c4\u03b1 <strong>Callbacks<\/strong>. \u03a4\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03b5\u03c1\u03af\u03c0\u03bf\u03c5 <strong>19.5k bytes gzipped<\/strong>.<\/p>\n\n\n\n<p>\u03a4\u03b1 Deferreds \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03b6\u03b1\u03bd \u03b5\u03b4\u03ce \u03ba\u03b1\u03b9 \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1 \u03c4\u03bf <strong>Promises\/A+<\/strong> standard, \u03ac\u03c1\u03b1 \u03c3\u03c4\u03b9\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c2 \u03bd\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b2\u03b5\u03af\u03c2 \u03c3\u03b5 <strong>native Promises<\/strong>. \u039f\u03b9 native Promises \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03c3\u03b5 \u03cc\u03bb\u03bf\u03c5\u03c2 \u03c4\u03bf\u03c5\u03c2 browsers \u03c0\u03bf\u03c5 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03b7 jQuery, <strong>\u03bc\u03b5 \u03b5\u03be\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03c4\u03bf\u03bd IE11<\/strong>. \u03a3\u03b7\u03bc\u03b5\u03b9\u03ce\u03bd\u03b5\u03c4\u03b1\u03b9 \u03b5\u03c0\u03af\u03c3\u03b7\u03c2 \u03cc\u03c4\u03b9 \u03c4\u03b1 Deferreds \u03ad\u03c7\u03bf\u03c5\u03bd \u03ba\u03ac\u03c0\u03bf\u03b9\u03b1 extra \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03c0\u03bf\u03c5 \u03b4\u03b5\u03bd \u03ba\u03b1\u03bb\u03cd\u03c0\u03c4\u03bf\u03bd\u03c4\u03b1\u03b9 100% \u03b1\u03c0\u03cc native Promises, \u03b1\u03bb\u03bb\u03ac \u03b7 \u03c0\u03bb\u03b5\u03b9\u03bf\u03bd\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c4\u03c9\u03bd \u03c7\u03c1\u03ae\u03c3\u03b5\u03c9\u03bd \u03bc\u03b5\u03c4\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 Promise methods.<\/p>\n\n\n\n<p>\u0391\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03be\u03b5\u03b9\u03c2 IE11, \u03b7 \u03c0\u03b9\u03bf \u03b1\u03c3\u03c6\u03b1\u03bb\u03ae\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf <strong>main build<\/strong> \u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03b5\u03b9\u03c2 <strong>polyfill \u03b3\u03b9\u03b1 native Promises<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Slim build \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 (CDN)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.slim.js<\/li>\n\n\n<li>https:\/\/code.jquery.com\/jquery-4.0.0.slim.min.js<\/li>\n\n<\/ul>\n\n\n\n<p>\u0397 \u03bb\u03bf\u03b3\u03b9\u03ba\u03ae \u03c4\u03bf\u03c5 slim build, \u03cc\u03c0\u03c9\u03c2 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03ac\u03c6\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03bf release: \u03b1\u03c1\u03ba\u03b5\u03c4\u03ad\u03c2 \u03c6\u03bf\u03c1\u03ad\u03c2 \u03b4\u03b5\u03bd \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c3\u03b1\u03b9 ajax (\u03ae \u03c0\u03c1\u03bf\u03c4\u03b9\u03bc\u03ac\u03c2 \u03bc\u03b9\u03b1 standalone \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 \u03bc\u03cc\u03bd\u03bf \u03b3\u03b9\u03b1 requests). \u0395\u03c0\u03af\u03c3\u03b7\u03c2, \u03b3\u03b9\u03b1 animations \u03c3\u03c5\u03c7\u03bd\u03ac \u03b1\u03c1\u03ba\u03b5\u03af \u03c3\u03c5\u03bd\u03b4\u03c5\u03b1\u03c3\u03bc\u03cc\u03c2 CSS \u03ba\u03b1\u03b9 class manipulation. \u039a\u03b1\u03b9 \u03b1\u03c6\u03bf\u03cd \u03bf\u03b9 \u03c3\u03cd\u03b3\u03c7\u03c1\u03bf\u03bd\u03bf\u03b9 browsers (\u03b5\u03ba\u03c4\u03cc\u03c2 IE11) \u03ad\u03c7\u03bf\u03c5\u03bd native Promises, \u03c4\u03b1 Deferreds\/Callbacks \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bb\u03ad\u03bf\u03bd \u03b1\u03bd\u03b1\u03b3\u03ba\u03b1\u03af\u03b1 \u03c3\u03c4\u03b9\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c0\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u03a7\u03c1\u03ae\u03c3\u03b9\u03bc\u03b1 links \u03b3\u03b9\u03b1 upgrade \u03ba\u03b1\u03b9 release info<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Upgrade guide: https:\/\/jquery.com\/upgrade-guide\/4.0\/<\/li>\n\n\n<li>jQuery Migrate plugin: https:\/\/github.com\/jquery\/jquery-migrate\/<\/li>\n\n\n<li>Full changelog comparison 3.7.1 \u2192 4.0.0: https:\/\/github.com\/jquery\/jquery\/compare\/3.7.1&#8230;4.0.0<\/li>\n\n\n<li>Download page: https:\/\/jquery.com\/download\/<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u03a3\u03c4\u03b9\u03b3\u03bc\u03b9\u03cc\u03c4\u03c5\u03c0\u03bf 20\u03b5\u03c4\u03af\u03b1\u03c2: reunion \u03c4\u03b7\u03c2 \u03bf\u03bc\u03ac\u03b4\u03b1\u03c2<\/h2>\n\n\n\n<p>\u03a4\u03bf release post \u03ba\u03bb\u03b5\u03af\u03bd\u03b5\u03b9 \u03bc\u03b5 \u03bc\u03b9\u03b1 \u03c9\u03c1\u03b1\u03af\u03b1 \u03bd\u03cc\u03c4\u03b1: \u03c0\u03bf\u03bb\u03bb\u03bf\u03af contributors \u03c4\u03c9\u03bd \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03c9\u03bd 20 \u03c7\u03c1\u03cc\u03bd\u03c9\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03c3\u03b5 reunion \u03c3\u03c4\u03bf Dallas, \u03bc\u03b5 \u03c4\u03bf\u03bd John Resig \u03bd\u03b1 \u03c3\u03c5\u03bc\u03bc\u03b5\u03c4\u03ad\u03c7\u03b5\u03b9 \u03ba\u03b1\u03b9 \u03bc\u03ad\u03c3\u03c9 Zoom. \u0397 \u03b1\u03bd\u03b1\u03ba\u03bf\u03af\u03bd\u03c9\u03c3\u03b7 \u03c4\u03b7\u03c2 4.0.0 \u03ad\u03b3\u03b9\u03bd\u03b5 \u03b5\u03bd\u03ce \u03ae\u03c4\u03b1\u03bd \u03cc\u03bb\u03bf\u03b9 \u03bc\u03b1\u03b6\u03af.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1804\" height=\"1359\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/12\/2026\/01\/jquery-reunion-group-edited.jpeg\" alt=\"\u039f\u03bc\u03b1\u03b4\u03b9\u03ba\u03ae \u03c6\u03c9\u03c4\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1 reunion \u03c4\u03c9\u03bd contributors \u03c4\u03b7\u03c2 jQuery \u03b3\u03b9\u03b1 \u03c4\u03b1 20 \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1\" class=\"wp-image-166\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/12\/2026\/01\/jquery-reunion-group-edited.jpeg 1804w, https:\/\/helloblog.io\/app\/uploads\/sites\/12\/2026\/01\/jquery-reunion-group-edited-300x226.jpeg 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/12\/2026\/01\/jquery-reunion-group-edited-1024x771.jpeg 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/12\/2026\/01\/jquery-reunion-group-edited-768x579.jpeg 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/12\/2026\/01\/jquery-reunion-group-edited-1536x1157.jpeg 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/12\/2026\/01\/jquery-reunion-group-edited-400x301.jpeg 400w\" sizes=\"auto, (max-width: 1804px) 100vw, 1804px\" \/><figcaption class=\"wp-element-caption\"><em>Forr\u00e1s: blog.jquery.com (Official jQuery Blog)<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u0388\u03bd\u03b1 \u03c0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03cc checklist \u03c0\u03c1\u03b9\u03bd \u03ba\u03ac\u03bd\u03b5\u03b9\u03c2 upgrade \u03c3\u03b5 4.0.0<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>\u0394\u03b9\u03ac\u03b2\u03b1\u03c3\u03b5 \u03c4\u03bf upgrade guide (\u03b5\u03b9\u03b4\u03b9\u03ba\u03ac \u03b1\u03bd \u03ad\u03c7\u03b5\u03b9\u03c2 legacy plugins \u03ae \u03bc\u03b5\u03b3\u03ac\u03bb\u03bf codebase): https:\/\/jquery.com\/upgrade-guide\/4.0\/<\/li>\n\n\n<li>\u03a4\u03c1\u03ad\u03be\u03b5 \u03bc\u03b5 jQuery Migrate \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03b5\u03b9\u03c2 legacy patterns: https:\/\/github.com\/jquery\/jquery-migrate\/<\/li>\n\n\n<li>\u0388\u03bb\u03b5\u03b3\u03be\u03b5 \u03b1\u03bd \u03b2\u03b1\u03c3\u03af\u03b6\u03b5\u03c3\u03b1\u03b9 \u03c3\u03b5 deprecated APIs \u03c0\u03bf\u03c5 \u03b1\u03c6\u03b1\u03b9\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd (\u03c0.\u03c7. <code>jQuery.trim<\/code>, <code>jQuery.parseJSON<\/code> \u03ba.\u03bb\u03c0.) \u03ba\u03b1\u03b9 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b7\u03c3\u03ad \u03c4\u03b1 \u03bc\u03b5 native APIs.<\/li>\n\n\n<li>\u039a\u03ac\u03bd\u03b5 smoke tests \u03c3\u03b5 flows \u03c0\u03bf\u03c5 \u03b5\u03c0\u03b7\u03c1\u03b5\u03ac\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc focus\/blur (order \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae).<\/li>\n\n\n<li>\u0391\u03bd \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c3\u03b1\u03b9 IE < 11, \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c2 \u03bd\u03b1 \u03c0\u03b1\u03c2 \u03c3\u03b5 4.0 (\u03bc\u03b5\u03af\u03bd\u03b5 \u03c3\u03b5 3.x). \u0391\u03bd \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c3\u03b1\u03b9 IE11 \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c6\u03c4\u03b5\u03c3\u03b1\u03b9 slim build, \u03b8\u03c5\u03bc\u03ae\u03c3\u03bf\u03c5 \u03cc\u03c4\u03b9 \u03c4\u03bf slim \u03b2\u03b1\u03c3\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 native Promises (\u03ac\u03c1\u03b1 \u03b8\u03ad\u03bb\u03b5\u03b9 main build \u03ae polyfill).<\/li>\n\n\n<li>\u0391\u03bd \u03ad\u03c7\u03b5\u03b9\u03c2 \u03b1\u03c5\u03c3\u03c4\u03b7\u03c1\u03cc CSP\/Trusted Types, \u03b1\u03be\u03b9\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03c4\u03b9\u03c2 \u03bd\u03ad\u03b5\u03c2 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03c6\u03bf\u03c1\u03ad\u03c2 (TrustedHTML inputs \u03ba\u03b1\u03b9 <code>&lt;script&gt;<\/code> transport) \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2 CSP errors.<\/li>\n\n\n<li>\u0391\u03bd \u03c4\u03bf project \u03c3\u03bf\u03c5 \u03b2\u03b1\u03c3\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 bundlers, \u03b4\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03b3\u03cd\u03c1\u03c9 \u03b1\u03c0\u03cc ES modules\/Rollup \u03ba\u03b1\u03b9 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03bf setup \u03c3\u03bf\u03c5 \u03c0\u03b1\u03af\u03b6\u03b5\u03b9 \u03c3\u03c9\u03c3\u03c4\u03ac \u03bc\u03b5 ESM &#038; CommonJS exports.<\/li>\n\n<\/ol>\n\n\n<div class=\"references-section\">\n                <h2>\u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ad\u03c2 \/ \u03a0\u03b7\u03b3\u03ad\u03c2<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/blog.jquery.com\/2026\/01\/17\/jquery-4-0-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">jQuery 4.0.0<\/a><\/li><li><a href=\"https:\/\/jquery.com\/upgrade-guide\/4.0\/\" target=\"_blank\" rel=\"noopener noreferrer\">Upgrade Guide 4.0<\/a><\/li><li><a href=\"https:\/\/github.com\/jquery\/jquery-migrate\/\" target=\"_blank\" rel=\"noopener noreferrer\">jquery\/jquery-migrate<\/a><\/li><li><a href=\"https:\/\/github.com\/jquery\/jquery\/compare\/3.7.1...4.0.0\" target=\"_blank\" rel=\"noopener noreferrer\">Full changelog: 4.0.0 (compare 3.7.1&#8230;4.0.0)<\/a><\/li><li><a href=\"https:\/\/jquery.com\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">Download jQuery<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>\u0397 jQuery \u03ba\u03bb\u03b5\u03af\u03bd\u03b5\u03b9 20 \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1 \u03ba\u03b1\u03b9 \u03b7 4.0.0 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03ce\u03c4\u03b7 major \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 \u03b5\u03b4\u03ce \u03ba\u03b1\u03b9 \u03c3\u03c7\u03b5\u03b4\u03cc\u03bd \u03bc\u03b9\u03b1 \u03b4\u03b5\u03ba\u03b1\u03b5\u03c4\u03af\u03b1. \u0388\u03c1\u03c7\u03b5\u03c4\u03b1\u03b9 \u03bc\u03b5 \u03b5\u03ba\u03c3\u03c5\u03b3\u03c7\u03c1\u03bf\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd\u03c2, \u03ba\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc legacy \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1 \u03ba\u03b1\u03b9 \u03bc\u03b5\u03c1\u03b9\u03ba\u03ac breaking changes \u03c0\u03bf\u03c5 \u03b1\u03be\u03af\u03b6\u03b5\u03b9 \u03bd\u03b1 \u03b4\u03b5\u03b9\u03c2 \u03c0\u03c1\u03b9\u03bd \u03ba\u03ac\u03bd\u03b5\u03b9\u03c2 upgrade.<\/p>\n","protected":false},"author":66,"featured_media":165,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[94],"tags":[96,97,98,51,95],"class_list":["post-167","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-csp","tag-es-modules","tag-frontend","tag-javascript","tag-jquery"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/posts\/167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/media\/165"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/el\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}