HTML5 LocalStorage: Проверка наличия ключа [дубликат]



этот вопрос уже есть ответ здесь:



почему это не работает ?



if(typeof(localStorage.getItem("username"))=='undefined'){
alert('no');
};


цель состоит в том, чтобы перенаправить пользователя со страницы индекса на страницу входа, если он еще не зарегистрирован.
Вот это localStorage.getItem("username")) переменная не определена для момент.



Это для приложения iOS phonegap.

761   4  

4 ответов:

слово спецификация:

метод getItem (key) должен возвращать текущее значение, связанное с данным ключом. Если данный ключ не существует в списке, связанном с объектом, то этот метод должен возвращает null.

вы должны на самом деле проверить против null.

if (localStorage.getItem("username") === null) {
  //...
}

этот метод работает для меня:

if("username" in localStorage){
    alert('yes');
} else {
   alert('no');
}

The документация MDN показывает, как getItem метод реализуемые:

Object.defineProperty(oStorage, "getItem", {
      value: function (sKey) { return sKey ? this[sKey] : null; },
      writable: false,
      configurable: false,
      enumerable: false
    });

если значение не задано, то возвращается null. Вы тестируете, чтобы увидеть, если это undefined. Проверьте, если это .

if(localStorage.getItem("username") === null){

обновление:

if (localStorage.hasOwnProperty("username")) {
    //
}

другой способ, соответствующий, когда значение не должно быть пустой строкой, нулем или любым другим ложным значением:

if (localStorage["username"]) {
    //
}

Comments

    Ничего не найдено.