Как я могу проверить, установлен ли элемент localStorage
? В настоящее время я использую
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
источник
источник
Ответы:
getItem
Метод в спецификации Webstorage, явно возвращается ,null
если элемент не существует:Так что вы можете:
Смотрите этот связанный вопрос:
источник
localStorage
для инкапсуляции этого маленького теста? НапримерlocalStorage.hasItem("infiniteScrollEnabled")
?Storage.prototype
объект, но, как правило, я всегда рекомендую не изменять объекты, которыми вы не владеете , особенно объекты-хозяева.Storage
интерфейса специально говорит, что значения имеют типDOMString
. w3.org/TR/webstorage/#the-storage-interfaceВы можете использовать
hasOwnProperty
метод, чтобы проверить этоРаботает в текущих версиях Chrome (Mac), Firefox (Mac) и Safari.
источник
null
значение, хотя. Вы можете иметь"null"
, но код там не будет плохо себя вести, в то время как этот не будет работать наlength
ключе.JSON.parse("null") === JSON.parse(null)
я столкнулся.foo
, а не имеет ли значение foo. У меня есть такая ситуация, когда событие click срабатывает.setitem
с логикой, основанной на getItem, но оно не будет работать, пока я не установлю setItem, и я не могу установить setItem, пока не узнаю состояние foo (value1 или value2). Другими словами, проверьте foo exits, затем установите его в значение1, если это не происходит без случайной перезаписи значения2.Самый короткий путь - использовать значение по умолчанию, если ключ не находится в хранилище:
источник
Вы также можете попробовать это, если хотите проверить неопределенность:
getItem - это метод, который возвращает ноль, если значение не найдено.
источник
Или
источник
ИСТИННО
НА ЛОЖЬ
ПРОВЕРЬТЕ СУЩЕСТВОВАНИЕ
источник
Вы должны проверить тип элемента в localStorage
источник
Как можно проверить наличие предмета в
localStorage
? этот метод работает в Internet Explorer.источник
try | catch
при разборе элемента.Может быть, лучше сделать сканирование плана?
источник
Лучший и самый безопасный способ, который я могу предложить, это,
Это проходит через
no-prototype-builtins
правило ESLint .источник
Я использовал в своем проекте и отлично работает для меня
источник
Пасхальный путь
Как это устроено
когда вы вызываете localStorage.test в первый раз, он не содержит никакого хранилища в объекте localStorage, поэтому он возвращает неопределенные триггеры условия else. после того как еще сработало, я установил новую переменную и снова проверил, что она содержит данные, чтобы они возвращали данные с истинным в условии if
источник
Попробуйте этот код
источник