Оберните чтение и JSON.parse в try/catch, обработайте отсутствие значения и проверьте структуру успешно разобранных данных.
Как обезопасить себя от ситуации, когда в localStorage по ключу лежит невалидный JSON?
Оберните чтение и 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 не гарантирует нужную схему; для меняющегося формата полезны версия и миграция. Ошибка кеша не должна превращать страницу в неработоспособную.