Signatur
Beschreibung
Die Methode removeItem() des Storage-Interface löscht ein einzelnes Schlüssel-Wert-Paar aus dem Web Storage. Sie wird sowohl auf localStorage (dauerhaft, pro Origin) als auch auf sessionStorage (pro Tab bzw. Browsing-Kontext) aufgerufen.
Gibt es keinen Eintrag mit dem angegebenen Schlüssel, passiert nichts: Es wird kein Fehler geworfen und kein storage-Event ausgelöst. Deshalb muss man vor dem Löschen nicht erst mit getItem() prüfen, ob der Schlüssel existiert.
Typische Einsatzfälle sind das Abmelden (Token oder Sitzungsdaten entfernen), das Verwerfen veralteter Cache-Einträge oder das Aufräumen von Entwürfen, nachdem ein Formular abgeschickt wurde. Wenn Sie alle Einträge löschen wollen, nutzen Sie stattdessen Storage.clear().
Wird ein vorhandener Eintrag in localStorage entfernt, bekommen andere Fenster oder Tabs desselben Origins ein storage-Event, bei dem newValue auf null steht. Das Dokument, das die Änderung selbst vorgenommen hat, erhält dieses Event nicht.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $keyName Pflicht | string | Name des Schlüssels, der entfernt werden soll. Werte, die keine Zeichenketten sind, werden in einen String umgewandelt (z. B. 42 → "42", undefined → "undefined"). |
Rückgabewert
Beispiele
Einfachen Eintrag löschen
localStorage.setItem('theme', 'dark');
console.log(localStorage.getItem('theme'));
localStorage.removeItem('theme');
console.log(localStorage.getItem('theme'));
// Nicht vorhandener Schlüssel: kein Fehler
localStorage.removeItem('gibtEsNicht');
Beim Abmelden Sitzungsdaten entfernen
const AUTH_KEYS = ['authToken', 'refreshToken', 'currentUser'];
const logout = () => {
AUTH_KEYS.forEach((key) => localStorage.removeItem(key));
sessionStorage.removeItem('lastVisitedPage');
window.location.assign('/login');
};
document.querySelector('#logout')?.addEventListener('click', logout);
Abgelaufene Cache-Einträge mit Präfix aufräumen
const PREFIX = 'cache:';
const purgeExpired = () => {
// Schlüssel zuerst sammeln, denn Löschen verschiebt die Indizes
const keys = Object.keys(localStorage).filter((k) => k.startsWith(PREFIX));
let removed = 0;
for (const key of keys) {
try {
const { expires } = JSON.parse(localStorage.getItem(key));
if (Date.now() > expires) {
localStorage.removeItem(key);
removed++;
}
} catch {
localStorage.removeItem(key); // defekten Eintrag entfernen
}
}
console.log(`${removed} Einträge entfernt`);
};
purgeExpired();
Löschen in anderen Tabs erkennen
window.addEventListener('storage', (event) => {
if (event.key === 'authToken' && event.newValue === null) {
console.log('In einem anderen Tab abgemeldet');
window.location.reload();
}
});
// Wichtig · Fallstricke
- Kein Rückgabewert: Ob wirklich etwas gelöscht wurde, erfahren Sie nur, indem Sie vorher mit
getItem(key) !== nullprüfen. - Löschen in einer Schleife über Indizes: Wenn Sie mit
for (let i = 0; i < localStorage.length; i++)undkey(i)durchlaufen und dabei löschen, verschieben sich die Indizes und Einträge werden übersprungen. Sammeln Sie die Schlüssel deshalb vorher, etwa mitObject.keys(localStorage). - Nicht mit
deleteverwechseln:delete localStorage.keyfunktioniert zwar meistens auch,removeItem()ist aber eindeutig und funktioniert auch bei Schlüsseln, die wie Methoden heißen (z. B.\"getItem\"). - Einträge mit
nullüberschreiben ist kein Löschen:setItem(key, null)speichert den Text\"null\". Zum Löschen immerremoveItem()verwenden. - Zugriffsfehler: Wenn Speicher blockiert ist (z. B. wenn Drittanbieter-Cookies in iframes gesperrt sind oder in manchen privaten Modi), kann schon der Zugriff auf
localStorageeinenSecurityErrorwerfen. Kritischen Code intry/catchkapseln. - Sicherheit: Gelöschte Token sind nur lokal weg. Serverseitige Sitzungen müssen zusätzlich über den Server ungültig gemacht werden.
- Wird von allen modernen Browsern unterstützt. Existiert nicht in Node.js (außer ab Node 22 mit experimentellem
--localstorage-file).