Локальное хранилище становится неправильным или имеет нулевое значение

#javascript #jquery #local-storage

#javascript #jquery #локальное хранилище

Вопрос:

Я пытаюсь установить некоторое значение в локальном хранилище. Итак, я делаю это:

 if (localStorage) {

    var event = localStorage.getItem("Event");

    if (event != "undefined" || event != "null") {
        console.log(event)
    } else {
        localStorage.setItem("Event", "Event Name");
        console.log('test');
    }
}
 

Я не могу сохранить значение в локальном хранилище в первый раз. Он ничего не возвращает в else состоянии. Всегда возвращается null из существующего условия проверки. Кто-нибудь может помочь?

Комментарии:

1. Для создания строк используются кавычки. «undefined» — это строковый литерал, и он равен только строке «undefined».

2. x != a || x != b всегда верно, когда a != b .

Ответ №1:

Если оно не существует, null возвращается, а не строка "null" , поэтому измените на:

 if (event != null) {
    console.log(event)
} else {
    localStorage.setItem("Event", "Event Name");
    console.log('test');
}
 

Из документов W3:

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