Como posso verificar se um item está definido localStorage
? Atualmente estou usando
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
fonte
fonte
Respostas:
O
getItem
método na especificação WebStorage retorna explicitamentenull
se o item não existir:Então você pode:
Veja esta pergunta relacionada:
fonte
localStorage
para encapsular este pequeno teste? Por exemplolocalStorage.hasItem("infiniteScrollEnabled")
?Storage.prototype
objeto, mas, como regra geral, eu sempre recomendo não modificar objetos que você não possui , especialmente objetos de host.Storage
interface diz especificamente que os valores são do tipoDOMString
. w3.org/TR/webstorage/#the-storage-interfaceVocê pode usar o
hasOwnProperty
método para verificar issoFunciona nas versões atuais do Chrome (Mac), Firefox (Mac) e Safari.
fonte
null
valor armazenado . Você pode ter"null"
, mas o código não se comportará mal, enquanto este falhará nalength
chave.JSON.parse("null") === JSON.parse(null)
tive uma colisão.foo
existe, não se foo tem um valor. Eu tenho essa situação, em que um evento de clique é acionado.setitem
com lógica baseada em getItem, mas não funcionará até eu definir o Item, e não posso definir o item até conhecer o estado do foo (valor1 ou valor2). Em outras palavras, marque foo exit e defina-o como value1, se não ocorrer, sem sobrescrever acidentalmente o valor2.A maneira mais curta é usar o valor padrão, se a chave não estiver no armazenamento:
fonte
Você também pode tentar isso se quiser verificar indefinidamente:
getItem é um método que retorna nulo se o valor não for encontrado.
fonte
Ou
fonte
De verdade
PARA FALSO
VERIFIQUE A EXISTÊNCIA
fonte
Você deve verificar o tipo do item no localStorage
fonte
Como alguém pode testar a existência de um item
localStorage
? esse método funciona no internet explorer.fonte
try | catch
analisar o item.Talvez seja melhor fazer uma varredura do plano?
fonte
A melhor e mais segura maneira de sugerir é essa,
Isso passa pela
no-prototype-builtins
regra do ESLint .fonte
Eu usei no meu projeto e funciona perfeitamente para mim
fonte
maneira easist é
Como funciona
quando você chama localStorage.test pela primeira vez, ele não contém nenhum armazenamento no objeto localStorage; portanto, ele retorna outros gatilhos de condição indefinidos. depois de disparado, defino uma nova variável e verifique novamente se ela contém dados para retornar dados com true se condição
fonte
Experimente este código
fonte