Как обезопасить себя от ситуации, когда в localStorage по ключу лежит невалидный JSON?

Оберните чтение и JSON.parse в try/catch, обработайте отсутствие значения и проверьте структуру успешно разобранных данных.

Короткий ответ

Что ответить на собеседовании

Оберните чтение и JSON.parse в try/catch, обработайте отсутствие значения и проверьте структуру успешно разобранных данных.

Подробный разбор

Ответ с пояснениями

Оберните чтение и JSON.parse в try/catch, обработайте отсутствие значения и проверьте структуру успешно разобранных данных.

function readStored(key, fallback, isValid) {
  try {
    const raw = localStorage.getItem(key);
    if (raw === null) return fallback;
    const value = JSON.parse(raw);
    return isValid(value) ? value : fallback;
  } catch {
    return fallback;
  }
}

Сам доступ к localStorage тоже может быть запрещён. Корректный JSON не гарантирует нужную схему; для меняющегося формата полезны версия и миграция. Ошибка кеша не должна превращать страницу в неработоспособную.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее