JavaScript: сохранить объект в localStorage
localStorage хранит только строки, поэтому объект перед записью преобразуют через JSON.stringify(), а после чтения разбирают JSON.parse(). Обрабатывайте отсутствие ключа и некорректный JSON: данные могут быть удалены или изменены пользователем.
Записать и прочитать объект
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().
localStorage.setItem('settings', JSON.stringify(settings));
const raw = localStorage.getItem('settings');
const loadedSettings = raw ? JSON.parse(raw) : {theme: 'light', fontSize: 14};Безопасное чтение с обработкой ошибки
function readSettings() {
try {
const raw = localStorage.getItem('settings');
return raw ? JSON.parse(raw) : null;
} catch (error) {
console.error('Не удалось прочитать настройки:', error);
return null;
}
}Операция | Метод |
|---|---|
Сохранить строку |
|
Прочитать |
|
Удалить ключ |
|
Очистить всё хранилище сайта |
|
Чем localStorage отличается от sessionStorage?
localStorage сохраняется между перезапусками браузера. sessionStorage живёт в пределах вкладки и очищается после её закрытия.
Как очистить только один объект?
Вызовите localStorage.removeItem('settings'). clear() удалит все ключи сайта, поэтому для прикладной очистки обычно безопаснее удалить конкретный ключ.