Start · Sprachen · JavaScript · Referenz · Storage.removeItem()

Storage.removeItem()

Methode

Entfernt den Eintrag mit dem angegebenen Schlüssel aus einem <code>Storage</code>-Objekt (<code>localStorage</code> oder <code>sessionStorage</code>), falls er existiert.

seit JavaScript Baseline: alle Browser (seit 2009) Kategorie: webapi

Signatur

Storage.prototype.removeItem(keyName)

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

Typ
undefined
Beschreibung
Kein Rückgabewert. Die Methode sagt nicht, ob tatsächlich ein Eintrag gelöscht wurde.

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');
dark null

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();
2 Einträge entfernt

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();
  }
});
In einem anderen Tab abgemeldet

// Wichtig · Fallstricke

  • Kein Rückgabewert: Ob wirklich etwas gelöscht wurde, erfahren Sie nur, indem Sie vorher mit getItem(key) !== null prüfen.
  • Löschen in einer Schleife über Indizes: Wenn Sie mit for (let i = 0; i < localStorage.length; i++) und key(i) durchlaufen und dabei löschen, verschieben sich die Indizes und Einträge werden übersprungen. Sammeln Sie die Schlüssel deshalb vorher, etwa mit Object.keys(localStorage).
  • Nicht mit delete verwechseln: delete localStorage.key funktioniert 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 immer removeItem() 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 localStorage einen SecurityError werfen. Kritischen Code in try/catch kapseln.
  • 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).