Jak mogę sprawdzić, czy element jest ustawiony localStorage
? Obecnie używam
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
źródło
źródło
Odpowiedzi:
getItem
Metoda w specyfikacji WebStorage wyraźnie wracanull
jeżeli rzecz nie istnieje:Więc możesz:
Zobacz to powiązane pytanie:
źródło
localStorage
aby zamknąć ten mały test? Na przykładlocalStorage.hasItem("infiniteScrollEnabled")
?Storage.prototype
obiekt, ale jako ogólną zasadę zawsze zalecam, aby nie modyfikować obiektów, których nie jesteś właścicielem , a zwłaszcza hostować obiekty.Storage
interfejsu wyraźnie mówi, że wartości są typuDOMString
. w3.org/TR/webstorage/#the-storage-interfaceMożesz użyć
hasOwnProperty
metody, aby to sprawdzićDziała w aktualnych wersjach Chrome (Mac), Firefox (Mac) i Safari.
źródło
null
wartości. Możesz mieć"null"
, ale kod nie będzie się na nim źle zachowywał, podczas gdy ten zawiedzie nalength
kluczu.JSON.parse("null") === JSON.parse(null)
miałem kolizję.foo
istnieje, a nie czy foo ma wartość. Mam taką sytuację, w której zdarzenie kliknięcia uruchamia się.setitem
z logiką opartą na getItem, ale nie zadziała, dopóki nie ustawię elementu i nie mogę ustawić elementu, dopóki nie poznam stanu foo (wartość1 lub wartość2). Innymi słowy, sprawdź wyjścia foo, a następnie ustaw wartość 1, jeśli nie obejdzie się bez przypadkowego zastąpienia wartości 2.Najkrótszym sposobem jest użycie wartości domyślnej, jeśli klucza nie ma w pamięci:
źródło
Możesz także spróbować tego, jeśli chcesz sprawdzić, czy nie jest zdefiniowany:
getItem to metoda, która zwraca null, jeśli wartość nie zostanie znaleziona.
źródło
Lub
źródło
Naprawdę
NA FAŁSZ
SPRAWDŹ ISTNIENIE
źródło
Należy sprawdzić typ elementu w localStorage
źródło
Jak można przetestować istnienie przedmiotu
localStorage
? ta metoda działa w przeglądarce Internet Explorer.źródło
try | catch
parsować element.Może lepiej zrobić skan planu?
źródło
Najlepszy i najbezpieczniejszy sposób, jaki mogę zasugerować, to:
To przechodzi zasadę ESLint
no-prototype-builtins
.źródło
Użyłem w swoim projekcie i działa dla mnie idealnie
źródło
najprościej jest
Jak to działa
przy pierwszym wywołaniu localStorage.test nie zawiera on żadnego obiektu w obiekcie localStorage, więc zwraca niezdefiniowane wyzwalacze warunku. po innym uruchomieniu ustawiłem nową zmienną i ponownie sprawdziłem, czy zawiera dane, aby zwróciła dane z wartością true w warunku if
źródło
Wypróbuj ten kod
źródło