Dinge, die Sie in JavaScript im Jahr 2025 nicht mehr tun sollten
JavaScript entwickelt sich rasant weiter. Code-Muster, die vor drei Jahren noch modern wirkten, liefern heute unnötige Bytes aus, ignorieren Plattformverbesserungen oder basieren auf veralteten APIs. Wenn Sie 2025 produktive Web-Apps entwickeln, finden Sie hier die JavaScript-Anti-Patterns, die Sie vermeiden sollten – und was Sie stattdessen verwenden sollten.
Wichtigste Erkenntnisse
- Veraltete Features wie
with-Anweisungen,__proto__undString.prototype.substrsollten durch moderne Alternativen ersetzt werden. - Legacy-Bibliotheken wie jQuery, Moment.js und Lodash können oft durch native Browser-APIs und ES2023–ES2025-Features ersetzt werden.
- Modernes CSS übernimmt mittlerweile viele Aufgaben, die früher JavaScript erforderten, darunter Container Queries, der
:has()-Selektor und scroll-gebundene Animationen. - Native ESM und leichtgewichtige Bundler wie Vite haben CommonJS und RequireJS für neue Frontend-Projekte obsolet gemacht.
Verwenden Sie keine veralteten Sprachfeatures mehr
Einige JavaScript-Features sind seit Jahren veraltet oder wurden abgelöst, bleiben aber durch Copy-Paste und Gewohnheit in Codebasen bestehen.
Streichen Sie diese aus Ihrem Vokabular:
with-Anweisungen — Seit ES5 im Strict Mode verboten. Sie erzeugen mehrdeutige Scopes und verhindern Optimierungen.__proto__— Verwenden Sie stattdessenObject.getPrototypeOf()undObject.setPrototypeOf().String.prototype.substr— Veraltet. Verwenden Sieslice()odersubstring().- Legacy RegExp Statics wie
RegExp.$1— Diese sind nicht standardisiert und unzuverlässig über verschiedene Engines hinweg.
Das sind keine Randfälle. Linter markieren sie aus gutem Grund. Moderne JavaScript-Patterns setzen voraus, dass Sie diese hinter sich gelassen haben.
Greifen Sie nicht mehr standardmäßig zu Legacy-Bibliotheken
jQuery, Moment.js, Lodash und RequireJS lösten echte Probleme – im Jahr 2015. Heute deckt die Plattform die meisten ihrer Anwendungsfälle nativ ab.
Was Sie stattdessen tun sollten:
- DOM-Manipulation —
querySelector,querySelectorAllund moderne DOM-APIs erledigen, was jQuery einst tat. - Datumsverarbeitung — Die Temporal API ist auf dem Weg. Bis zur vollständigen Unterstützung verwenden Sie date-fns oder natives
Intl.DateTimeFormat. - Utility-Funktionen — ES2023–ES2025-Features wie
Object.groupBy(), neue Set-Methoden (.union(),.intersection()) und Iterator-Helpers (.map(),.filter()auf Iteratoren) ersetzen die meisten Lodash-Imports. - Modul-Loading — Native ESM und
import()machen RequireJS und AMD obsolet.
Eine 30KB-Bibliothek für Funktionalität auszuliefern, die der Browser kostenlos bereitstellt, ist ein Frontend-Fehler, den Sie 2025 vermeiden sollten.
Ignorieren Sie ES2023–ES2025-Features nicht länger
Die Sprache hat sich erheblich weiterentwickelt. Diese Features sind stabil oder nahezu stabil:
Object.groupBy()undMap.groupBy()— Gruppieren Sie Arrays ohne externe Bibliotheken.- Iterator-Helpers — Verketten Sie
.map(),.filter(),.take()direkt auf Iteratoren. - Neue Set-Methoden —
.union(),.intersection(),.difference(),.isSubsetOf(). RegExp.escape()— Maskieren Sie Strings sicher für Regex-Patterns.- Import-Attribute und JSON-Module —
import data from './config.json' with { type: 'json' }. - Top-Level
await— Verwenden Sie es in Modulen, ohne alles in async IIFEs zu verpacken.
Prüfen Sie caniuse.com und Ihre Ziel-Browser, aber greifen Sie nicht standardmäßig zu Polyfills für Features, die vor zwei Jahren ausgeliefert wurden.
Discover how at OpenReplay.com.
Verwenden Sie JavaScript nicht mehr für das, was CSS jetzt übernimmt
Modernes CSS hat Funktionalität absorbiert, die früher JavaScript erforderte. JS dafür zu verwenden erzeugt unnötige Komplexität und schadet der Performance.
Lassen Sie CSS Folgendes übernehmen:
- Container Queries — Responsive Komponenten ohne
ResizeObserver-Hacks. :has()-Selektor — Eltern-Selektion ohne DOM-Traversierung.- Scroll-gebundene Animationen —
animation-timeline: scroll()ersetzt Scroll-Event-Listener. - View Transitions — Native Seitenübergangseffekte.
Jeder Scroll-Listener, den Sie entfernen, ist ein Gewinn für den Main-Thread.
Verwenden Sie keine Mutation Events und Third-Party-Cookie-Annahmen mehr
Mutation Events (DOMSubtreeModified, DOMNodeInserted) sind veraltet und haben schlechte Performance. Verwenden Sie stattdessen MutationObserver – es ist seit über einem Jahrzehnt stabil.
Third-Party-Cookies sind für Tracking und Cross-Site-Auth-Flows praktisch tot. Chromes Deprecation-Timeline hat sich verschoben, aber Safari und Firefox blockieren sie seit Jahren. Entwickeln Sie Authentifizierungs-Flows mit First-Party-Cookies, Tokens oder Federated Identity. Architektieren Sie nicht auf Basis von Annahmen, die in der Hälfte der Browser Ihrer Nutzer nicht funktionieren.
Starten Sie keine neuen Projekte mehr mit CommonJS
Wenn Sie 2025 Browser-Code schreiben und zu require() oder umfangreichen Webpack-Konfigurationen greifen, halten Sie inne. Native ESM funktioniert überall, wo es darauf ankommt. Leichtere Bundler wie Vite und esbuild handhaben die verbleibenden Randfälle mit minimaler Konfiguration.
CommonJS hat noch seinen Platz in Node.js-Bibliotheken, die ältere Umgebungen ansprechen. Für neuen Frontend-Code ist es Legacy-Ballast.
Fazit
JavaScript Best Practices 2025 bedeuten nicht, Trends hinterherzulaufen – es geht darum zu erkennen, wann die Plattform mit Ihren Dependencies gleichgezogen hat. Jedes veraltete Feature, das Sie entfernen, jede unnötige Bibliothek, die Sie weglassen, und jede CSS-native Lösung, die Sie übernehmen, macht Ihren Code kleiner, schneller und einfacher zu warten.
Auditieren Sie Ihre aktuellen Projekte. Überprüfen Sie Ihre Imports. Hinterfragen Sie, ob diese Utility-Funktion eine Bibliothek benötigt oder nur eine native Methode, die Sie noch nicht gelernt haben. Die modernen JavaScript-Patterns sind bereits da – Sie müssen sie nur verwenden.
FAQs
Ja, aber gehen Sie vorsichtig vor. Moderne Browser unterstützen querySelector, fetch und andere APIs, die jQuerys Kernfunktionalität ersetzen. Für bestehende Projekte sollten Sie zuerst Ihre jQuery-Nutzung auditieren und Aufrufe schrittweise ersetzen. Neue Projekte sollten jQuery vollständig vermeiden, da native Alternativen jetzt gut unterstützt werden und performanter sind.
Die Temporal API befindet sich in Phase 3 des TC39-Prozesses und ist in einigen Browsern hinter Flags verfügbar. Vollständige Cross-Browser-Unterstützung wird bald erwartet, aber für heutigen Produktionscode verwenden Sie date-fns oder natives Intl.DateTimeFormat. Beobachten Sie caniuse.com für Updates, bevor Sie Temporal ohne Polyfills übernehmen.
Für die meisten Anwendungsfälle: nein. Natives JavaScript enthält jetzt Object.groupBy, neue Set-Methoden und Iterator-Helpers, die gängige Lodash-Funktionen abdecken. Lodash bleibt jedoch nützlich für Deep Cloning, komplexe Objektmanipulation oder beim Targeting älterer Umgebungen. Importieren Sie nur die spezifischen Funktionen, die Sie benötigen, statt der gesamten Bibliothek.
Beginnen Sie damit, Ihre package.json mit type auf module zu aktualisieren. Ersetzen Sie require-Anweisungen durch import-Syntax und module.exports durch export. Aktualisieren Sie Dateierweiterungen auf .mjs falls nötig, oder konfigurieren Sie Ihren Bundler entsprechend. Tools wie Vite und esbuild vereinfachen diese Transition für Frontend-Projekte erheblich.
Complete picture for complete understanding
Capture every clue your frontend is leaving so you can instantly get to the root cause of any issue with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data.
Check our GitHub repo and join the thousands of developers in our community.