Получение, установка и удаление элементов
Используйте Web Storage API для чтения и записи данных
«Получение, установка и удаление элементов» — бесплатный урок HTML Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.
Возможности API хранилища
И localStorage, и sessionStorage предоставляют одинаковые четыре основных метода: getItem(key), setItem(key, value), removeItem(key) и clear(). Это простые хранилища пар «ключ — значение», реализованные браузером.
setItem сохраняет строки
localStorage.setItem("theme", "dark") сохраняет строку под ключом "theme". И ключ, и значение должны быть строками — значения других типов перед сохранением неявно преобразуются в строки, что незаметно портит объекты и массивы.
localStorage.setItem("theme", "dark");
localStorage.setItem("count", "42");Хранение объектов с помощью JSON
Чтобы сохранить структурированные данные, сериализуйте их в формате JSON: localStorage.setItem("user", JSON.stringify(user)). Прочитать их обратно можно так: const user = JSON.parse(localStorage.getItem("user")). Всегда обрабатывайте parse в блоке перехвата ошибок на случай, если сохранённое значение имеет неверный формат.
const user = { name: "Ada", age: 30 };
localStorage.setItem("user", JSON.stringify(user));
const loaded = JSON.parse(localStorage.getItem("user"));getItem возвращает строку или null
getItem("missing") возвращает null, если ключ не существует, — никогда не undefined. Используйте оператор объединения с null для задания значения по умолчанию: const theme = localStorage.getItem("theme") ?? "light".
Синтаксис доступа к свойствам
Также можно использовать скобочную и точечную нотацию: localStorage.theme = "dark" и localStorage["theme"]. Оба варианта работают, но скрывают намерение — предпочитайте явные вызовы методов, которые ясно показывают, что это постоянное хранилище, а не свойство объекта.
removeItem и очистка
localStorage.removeItem("theme") удаляет один ключ. localStorage.clear() удаляет все ключи текущего источника. Полная очистка разрушительна — никогда не вызывайте её без веской причины: она удаляет данные, установленные каждым скриптом на странице.
Перебор сохранённых ключей
Используйте localStorage.length и localStorage.key(index), чтобы перебрать все сохранённые ключи, или применяйте оператор расширения к Object.keys(localStorage). Это полезно при миграциях, отладке и очистке по префиксу, например при удалении всех ключей, начинающихся с "cache:".
for (let i = 0; i < localStorage.length; i++) {
const key = localStorage.key(i);
console.log(key, localStorage.getItem(key));
}Ошибки превышения квоты
Браузеры выделяют примерно от 5 до 10 MB для каждого источника. Превышение квоты вызывает ошибку QuotaExceededError. Оборачивайте setItem в конструкцию try/catch при сохранении потенциально больших значений, например кэша изображений или черновиков документов, чтобы ошибка не привела к сбою приложения.
try {
localStorage.setItem("draft", largeString);
} catch (e) {
if (e.name === "QuotaExceededError") {
// free space, warn user, or fall back
}
}Пространства имён ключей
Хранилище является общим для всего источника. Добавляйте к ключам префикс с названием приложения или функции (app:settings, cart:items), чтобы избежать конфликтов с другими скриптами, сторонними библиотеками и расширениями браузера, работающими в том же источнике.
Синхронная и блокирующая работа
API хранилища полностью синхронен — каждый вызов блокирует главный поток до завершения дискового ввода-вывода. Не сохраняйте очень большие двоичные объекты и не вызывайте setItem в тесных циклах; вместо этого объединяйте обновления в один сериализованный объект.
sessionStorage и localStorage
Одинаковый API, но разный срок действия. sessionStorage очищается при закрытии вкладки, а localStorage сохраняется после перезапуска браузера. Выбирайте sessionStorage для временного состояния мастера, а localStorage — для пользовательских настроек, которые должны сохраняться после перезагрузки.
Проверка знаний
Что возвращает localStorage.getItem("missing-key"), если этот ключ никогда не устанавливался?
Итоги
getItem, setItem, removeItem и операция очистки — четыре основы веб-хранилища. Значения всегда являются строками, поэтому структурированные данные следует оборачивать в JSON. Учитывайте возврат null, ошибку QuotaExceededError и используйте пространства имён, чтобы совместно и без конфликтов использовать источник с другими скриптами.
Часто задаваемые вопросы
Урок «Получение, установка и удаление элементов» бесплатный?
Да — полный текст урока «Получение, установка и удаление элементов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.
Чему я научусь в уроке «Получение, установка и удаление элементов»?
Используйте Web Storage API для чтения и записи данных Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать HTML Academy?
Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Получение, установка и удаление элементов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке HTML Academy?
Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- localStorage и sessionStorage
- Получение, установка и удаление элементов
- Отслеживание событий хранилища
- Безопасность: что никогда не следует хранить в хранилище