Wie kann ich überprüfen, ob ein Artikel eingestellt ist localStorage
? Zur Zeit benutze ich
if (!(localStorage.getItem("infiniteScrollEnabled") == true || localStorage.getItem("infiniteScrollEnabled") == false)) {
// init variable/set default variable for item
localStorage.setItem("infiniteScrollEnabled", true);
}
javascript
html
local-storage
Jiew Meng
quelle
quelle
Antworten:
Die
getItem
Methode in der WebStorage-Spezifikation gibt explizit zurück,null
wenn das Element nicht vorhanden ist:Also kannst du:
Siehe diese verwandte Frage:
quelle
localStorage
, um diesen kleinen Test zu kapseln? ZBlocalStorage.hasItem("infiniteScrollEnabled")
?Storage.prototype
Objekt sogar erweitern , aber als Faustregel empfehle ich immer, keine Objekte zu ändern, die Sie nicht besitzen , insbesondere keine Host-Objekte.Storage
Schnittstelle besagt ausdrücklich, dass die Werte vom Typ sindDOMString
. w3.org/TR/webstorage/#the-storage-interfaceSie können dies mit der
hasOwnProperty
Methode überprüfenFunktioniert in aktuellen Versionen von Chrome (Mac), Firefox (Mac) und Safari.
quelle
null
Wert speichern . Sie können haben"null"
, aber der Code dort wird sich nicht schlecht verhalten, während dieser auflength
Schlüssel fehlschlagen wird .JSON.parse("null") === JSON.parse(null)
ich eine Kollision hatte.foo
vorhanden ist, nicht, ob foo einen Wert hat. Ich habe diese Situation, in der ein.setitem
Klickereignis mit einer Logik ausgelöst wird, die auf getItem basiert, aber es funktioniert nicht, bis ich setItem gesetzt habe, und ich kann setItem nicht setzen, bis ich den Status von foo (Wert1 oder Wert2) kenne. Mit anderen Worten, überprüfen Sie die foo-Exits und setzen Sie sie auf value1, wenn dies nicht der Fall ist, ohne versehentlich value2 zu überschreiben.Der kürzeste Weg ist die Verwendung des Standardwerts, wenn sich der Schlüssel nicht im Speicher befindet:
quelle
Sie können dies auch versuchen, wenn Sie nach undefiniert suchen möchten:
getItem ist eine Methode, die null zurückgibt, wenn kein Wert gefunden wird.
quelle
Oder
quelle
Für wahr
FÜR FALSCH
EXISTANZ PRÜFEN
quelle
Sie sollten im localStorage nach dem Typ des Elements suchen
quelle
Wie kann man die Existenz eines Gegenstandes in testen
localStorage
? Diese Methode funktioniert im Internet Explorer.quelle
try | catch
beim Parsen des Elements.Vielleicht ist es besser, den Plan zu scannen?
quelle
Der beste und sicherste Weg, den ich vorschlagen kann, ist dieser:
Dies durchläuft die ESLint-
no-prototype-builtins
Regel.quelle
Ich habe in meinem Projekt verwendet und funktioniert perfekt für mich
quelle
Einfacher Weg ist
Wie es funktioniert
Wenn Sie localStorage.test zum ersten Mal aufrufen, enthält es keinen Speicher im localStorage-Objekt, sodass undefinierte Auslöser für andere Bedingungen zurückgegeben werden. Nachdem sonst ausgelöst wurde, setze ich eine neue Variable und überprüfe erneut, ob sie Daten enthält, damit sie Daten mit true in if-Bedingung zurückgeben
quelle
Versuchen Sie diesen Code
quelle