JavaScript: сохранить объект в localStorage

Категория: JavaScript · Язык: JavaScript · Обновлено:

localStorage хранит только строки, поэтому объект перед записью преобразуют через JSON.stringify(), а после чтения разбирают JSON.parse(). Обрабатывайте отсутствие ключа и некорректный JSON: данные могут быть удалены или изменены пользователем.

Записать и прочитать объект

JavaScript
const settings = {theme: 'dark', fontSize: 16};
const storage = new Map(); // Для примера; в браузере используйте localStorage.
storage.set('settings', JSON.stringify(settings));
const loaded = JSON.parse(storage.get('settings'));
console.log(loaded.theme); // dark

Браузерный вариант использует те же методы setItem() и getItem().

JavaScript
localStorage.setItem('settings', JSON.stringify(settings));
const raw = localStorage.getItem('settings');
const loadedSettings = raw ? JSON.parse(raw) : {theme: 'light', fontSize: 14};

Безопасное чтение с обработкой ошибки

JavaScript
function readSettings() {
  try {
    const raw = localStorage.getItem('settings');
    return raw ? JSON.parse(raw) : null;
  } catch (error) {
    console.error('Не удалось прочитать настройки:', error);
    return null;
  }
}

Операция

Метод

Сохранить строку

localStorage.setItem(key, value)

Прочитать

localStorage.getItem(key)

Удалить ключ

localStorage.removeItem(key)

Очистить всё хранилище сайта

localStorage.clear()

Чем localStorage отличается от sessionStorage?

localStorage сохраняется между перезапусками браузера. sessionStorage живёт в пределах вкладки и очищается после её закрытия.

Как очистить только один объект?

Вызовите localStorage.removeItem('settings'). clear() удалит все ключи сайта, поэтому для прикладной очистки обычно безопаснее удалить конкретный ключ.