URLSearchParams – Query-Strings sicher bauen und auslesen
Query-Strings von Hand zusammenzustückeln geht schnell schief – Sonderzeichen, Leerzeichen, Umlaute. URLSearchParams baut und liest sie korrekt kodiert, ganz ohne String-Basteln.
"/api/suche?q=" + eingabe sieht harmlos aus – bis jemand „grün & blau" eingibt und das & deine URL zerlegt. Der eingebaute URLSearchParams kümmert sich um die korrekte Kodierung und macht das Lesen genauso einfach.
Query-String bauen
const params = new URLSearchParams({
q: 'grün & blau',
seite: 2,
sort: 'preis',
});
params.toString(); // "q=gr%C3%BCn+%26+blau&seite=2&sort=preis"
const url = `/api/suche?${params}`;
await fetch(url);Alles ist sauber kodiert – Umlaute, das &, Leerzeichen. Kein manuelles encodeURIComponent mehr an dutzenden Stellen.
Query-String der aktuellen Seite auslesen
const q = new URLSearchParams(location.search);
q.get('seite'); // "2" (oder null, wenn nicht vorhanden)
q.has('sort'); // true
q.getAll('tag'); // ["neu","angebot"] bei ?tag=neu&tag=angebotPraktisch beim Aktualisieren einzelner Parameter: set überschreibt, delete entfernt, danach kannst du die neue Adresse ohne Neuladen in die History schreiben:
q.set('seite', '3');
history.replaceState(null, '', `?${q}`);Und weil URL das gleiche Objekt nutzt, kannst du auch eine komplette Adresse zerlegen: new URL(link).searchParams.get('utm_source').
Kleine, robuste Bausteine wie dieser stecken in jeder guten Website. Wenn du eine brauchst, schau auf bymw.de vorbei.
Quellen
Du brauchst mehr als ein Snippet?
Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.
Projekt anfragen →Verwandte Snippets
toSorted, toReversed und with: Arrays sortieren, ohne das Original zu zerstören
array.sort() sortiert nicht eine Kopie, sondern das Array selbst – und genau daran ist schon mancher Zustand im Frontend stillschweigend kaputtgegangen. Seit ES2023 gibt es zu jeder dieser Methoden eine Variante, die eine Kopie zurückgibt.
Aufzählungen richtig verketten mit Intl.ListFormat
"a, b und c" von Hand zusammenzubauen geht fast immer schief – bei einem Element, bei zwei Elementen, beim letzten Komma. Intl.ListFormat macht es richtig, in jeder Sprache, ganz ohne Bibliothek.
requestAnimationFrame – die Animationsschleife, die zum Bildschirm passt
setInterval(schritt, 16) läuft auf einem 144-Hz-Monitor anders als auf einem alten Handy – und im Hintergrundtab einfach weiter. requestAnimationFrame löst beides, wenn man die verstrichene Zeit mitrechnet statt Bilder zu zählen.