Что такое localStorage в веб-разработке?

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

Ответ

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

Основные отличия от sessionStorage:

  • localStorage: данные не имеют срока годности, доступны в рамках одного источника (домена) даже после закрытия браузера.
  • sessionStorage: данные очищаются после закрытия вкладки/окна браузера.

Базовые операции (JavaScript):

// Запись данных
localStorage.setItem('userToken', 'abc123xyz');
localStorage.setItem('theme', 'dark');

// Чтение данных
const token = localStorage.getItem('userToken'); // 'abc123xyz'
const theme = localStorage.getItem('theme'); // 'dark'

// Удаление конкретного элемента
localStorage.removeItem('theme');

// Полная очистка хранилища для текущего домена
localStorage.clear();

// Получение ключа по индексу
const keyName = localStorage.key(0); // 'userToken'

Ключевые особенности и ограничения:

  • Объём: обычно 5–10 МБ на домен (зависит от браузера).
  • Доступ: только из JavaScript в контексте того же источника (Same-Origin Policy).
  • Тип данных: хранит только строки. Для объектов используйте JSON.stringify() при записи и JSON.parse() при чтении.
  • Синхронность: операции блокируют основной поток. Для больших данных это может повлиять на производительность.
  • Безопасность: данные не защищены и доступны для любого скрипта на странице. Не храните чувствительную информацию (пароли, токены).