ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Управление localStorage в JS: проверка и установка значений

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Воспользуйтесь методом getItem для проверки элемента в Storage, который вернёт null, если указанный элемент отсутствует.

JS
Скопировать код
if (localStorage.getItem('ключ') !== null) {
  // Элемент присутствует в хранилище!
} else {
  // Элемента в хранилище нет.
}
Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Установка значения по умолчанию за одну строчку кода

Если необходимо задать значение по умолчанию для не найденного элемента, можно применить логический оператор ИЛИ и сократить код до одной строки:

JS
Скопировать код
const item = localStorage.getItem('ключ') || 'значение по умолчанию';

Применение возможностей современного JavaScript для оптимизации кода

Сделайте свой код компактнее и более элегантным с помощью функционала современного JavaScript:

  • Опциональная цепочка (?.) поможет избежать ошибки TypeError, если localStorage недоступен.
  • Оператор нулевого объединения (??) облегчит проверку на null или undefined.
JS
Скопировать код
const item = localStorage.getItem('ключ') ?? 'значение по умолчанию';

Будьте внимательны к распространенным ошибкам

Использование .hasOwnProperty() или оператора 'in' с localStorage противоречит концепции работы с хранилищем, как и проверка через typeof. Для проверки существования элемента отдайте предпочтение методу getItem().

Визуализация

Рассмотрим аналогию между проверкой элемента в Storage и просмотром почтового ящика:

Markdown
Скопировать код
Проверка почтового ящика:
- Почтовый ящик: 📬 Пуст ли он? | Письмо: ✉️

Проверка элемента в Storage:
- LocalStorage: 🗄️ Пуст ли? | Элемент: 📦
JS
Скопировать код
if (localStorage.getItem('ключ') !== null) {
    // 🗄️🔍📦: Элемент найден!
} else {
    // 🗄️ пуст.
}

Предотвращение ошибок и валидация

Перед внесением изменений убедитесь в том, что элемент действительно существует.

JS
Скопировать код
if(localStorage.getItem('ключ')) {
  // Можно начинать действия.
}

Помимо этого, localStorage не обладает бесконечной вместимостью — есть лимит на объём хранимых данных. Чрезмерное использование setItem может привести к исчерпанию этого лимита.

JS
Скопировать код
try {
  localStorage.setItem('ключ', 'значение'); // Попытка добавить еще один элемент.
} catch (e) {
  if (e instanceof DOMException && e.code === 22) {
    // Хранилище переполнено!
  }
}

Управление LocalStorage на профессиональном уровне

Эффективность и простота — ключи к мастерству использования localStorage. Вот некоторые продвинутые приемы:

Задаем значения с экономией

JS
Скопировать код
// Добавляем несколько элементов с помощью одной команды.
localStorage.setItem('ключ1', 'значение1').setItem('ключ2', 'значение2');

Удаляем данные разборчиво

JS
Скопировать код
// Удаляем элементы методично, по одному.
if (localStorage.getItem('someKey')) {
  localStorage.removeItem('someKey');  // Прощай, someKey.
}

Полная очистка

JS
Скопировать код
// Перепрофилирование и начало с чистого листа — всегда хорошая идея.
if(confirm('Желаете очистить хранилище?')) {
  localStorage.clear(); // localStorage теперь пуст.
}

Полезные материалы

  1. Web Storage API – Веб-API | MDN — подробное описание Веб-API хранилища от MDN.
  2. Как проверить установлен ли элемент в Storage – Stack Overflow — обсуждение тонкостей работы с local storage на Stack Overflow.
  3. LocalStorage, sessionStorage – JavaScript.info — практическое руководство по использованию localStorage и sessionStorage.
  4. Локальное хранилище и его использование на сайтах — Smashing Magazine — советы о том, как использовать LocalStorage на ваших сайтах максимально эффективно.
  5. HTML Web Storage API – W3Schools — руководство по API веб-хранилищ HTML5 от W3Schools.
  6. Learn PWA | web.dev — материалы Google о принципах хранения данных в приложениях.
  7. Куки, localStorage и sessionStorage – YouTube — видеоанализ различий между куками, localStorage и sessionStorage от Beau.