Как сохранить объект в localStorage
Короткий ответ
localStorage хранит только строки. Превращайте объект в JSON при записи и обратно при чтении:
const settings = { theme: 'dark', fontSize: 16 };
localStorage.setItem('settings', JSON.stringify(settings));
const saved = JSON.parse(localStorage.getItem('settings'));Значение по умолчанию
Если ключа ещё нет, getItem() возвращает null. Там может лежать и испорченное значение. Вспомогательная функция обрабатывает оба случая:
function load(key, fallback) {
try {
const value = localStorage.getItem(key);
return value === null ? fallback : JSON.parse(value);
} catch {
return fallback;
}
}
const cart = load('cart', []);Удаление
removeItem() удаляет один ключ, clear() — всё, что сохранил сайт:
localStorage.removeItem('cart');Частая ошибка
Без JSON.stringify() объект превращается в бесполезную строку [object Object]:
localStorage.setItem('user', { name: 'Anna' });
localStorage.getItem('user'); // '[object Object]'Функции из этого ответа
- JSON.stringify — Преобразует значение в строку в формате JSON.
- JSON.parse — Разбирает строку JSON и возвращает значение.