В чем разница между localStorage и sessionStorage в веб-браузере?

«В чем разница между localStorage и sessionStorage в веб-браузере?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

localStorage и sessionStorage — это Web Storage API, позволяющие хранить данные в браузере пользователя в формате «ключ-значение». Их основное различие — в времени жизни и области видимости.

Сравнительная таблица

Критерий localStorage sessionStorage
Время жизни Данные сохраняются бессрочно (до явного удаления JS, очистки кеша браузера или данных сайта). Данные очищаются при закрытии вкладки браузера (сессия страницы).
Область видимости Общий для всех вкладок и окон с одним доменом (происхождением). Изолирован для каждой отдельной вкладки. Даже если открыть ту же страницу в новой вкладке — будет новое хранилище.
Лимит хранения ~5-10 МБ на домен (зависит от браузера). ~5-10 МБ на домен (зависит от браузера).

Пример использования

// Запись данных
localStorage.setItem('userTheme', 'dark');
sessionStorage.setItem('formDraft', JSON.stringify({ name: 'John' }));

// Чтение данных
const theme = localStorage.getItem('userTheme'); // 'dark'
const draft = JSON.parse(sessionStorage.getItem('formDraft')); // {name: 'John'}

// Удаление данных
localStorage.removeItem('userTheme');
sessionStorage.clear(); // Очищает все данные текущей сессии

Когда что использовать:

  • localStorage — для долгосрочных настроек пользователя (тема, язык), токенов (с осторожностью) или данных для офлайн-работы.
  • sessionStorage — для временных данных сессии: ввод в форме с автозаполнением, состояние многошагового процесса, передача данных между страницами в рамках одной вкладки.