Ich verwende ein System, um Benutzer zu benachrichtigen, wenn eine Website einer größeren Aktualisierung unterzogen wurde, und ich mache es mit LocalStorage. Als ich das System erstellte, ließ ich das System prüfen, ob tip “null” war, und dann “tip” auf setzen wahr, als sie die Warnung erhielten. Jetzt möchte ich den lokalen Speicher „tip“ auf null zurücksetzen und stattdessen „tip2“ verwenden.
Würde ich das tun? localStorage.setItem(‘tip’, ‘null’);
localStorage.removeItem('tip')
wenn Sie darauf abzielen, den Schlüssel zu entfernen
localStorage.setItem('tip', 'null')
wenn Sie es nur auf die Zeichenfolge “null” setzen möchten
Es gibt keine Möglichkeit, ein localStorage-Element auf den Wert null festzulegen. Verwenden Sie stattdessen entfernen.
Jedes localStorage-Element hat entweder einen Zeichenfolgenwert oder es existiert nicht. Es ist kein anderer Typ möglich, daher ist auch keine Variation von null möglich.
Der verwirrende Teil ist, dass Sie, wie Sie in Ihrem Beispiel bemerkt haben, wenn Sie localStorage.getItem(‘tip’) aufrufen und es nicht existiert, im Debugger oder beim Versuch, den Wert anzuzeigen, einen Null-Rückgabewert sehen.
So unintuitiv dies auch ist, es bedeutet nicht, dass tatsächlich ein lokales Speicherelement mit einem Wert von null vorhanden ist. Es bedeutet wirklich, dass der Artikel “Tipp” überhaupt nicht existiert. Es gibt nicht einmal eine einzige interne Spur von irgendetwas, das mit der Schlüsselspitze zusammenhängt.
Wenn Sie versuchen, ein Element, das existiert, “auf null zurückzusetzen” (was unmöglich ist), sollten Sie es stattdessen tun Löschen der Artikel.
In Ihrem Beispiel wird dies dazu führen, dass der Rückgabewert wieder als null angezeigt wird, wie beim ersten Aufruf von localStorage.getItem(‘tip’), obwohl er nicht null ist, sondern überhaupt nicht existiert. Dazu können Sie das Element wie unten beschrieben entfernen.
Denken Sie daran, alles, was Sie jemals brauchen, ist erhalten, einstellenund Löschen.
localStorage.getItem('tip')
// Artikelwert abrufen
localStorage.setItem('tip','cool stuff')
// Itemwert setzen
localStorage.removeItem('tip')
// Gegenstand entfernen
if (localStorage.getItem('tip') === null)
// Prüfen, ob Artikel vorhanden ist
Technisch gesehen schlug die Antwort von @Michael Theriot vor, den Artikeltipp auf einen Zeichenfolgenwert von “null” zu setzen. Das ist nicht viel anders, als es auf „Hund“ zu setzen, da keiner von ihnen tatsächlich ein vom System erkannter Nullwert ist.
Ich vermute, das ist nicht das, was Sie gemeint haben, aber selbst wenn es so wäre, würde ich eher davon abraten, da es für andere, die Ihren Code pflegen, verwirrend werden kann.