DOM и React Middle DOM на практике обновлено

Безопасная работа с localStorage

Условие

readJSON(key, fallback) читает и разбирает JSON из localStorage. Если ключа нет, значение битое или хранилище недоступно - вернуть fallback, не бросая исключение.

Что проверяют тесты

  • читает значение

  • нет ключа

  • битый JSON

  • сохранённый null отличается от отсутствия

Как подойти

Три источника отказа: ключа нет, значение не разбирается, хранилище недоступно (приватный режим, отключённые куки, переполнение квоты). Все три закрываются одним try/catch плюс отдельной проверкой на null. Тонкость: строка 'null' - это валидно сохранённое значение null, его нельзя схлопывать с отсутствием ключа.

Подсказки: 2
  1. getItem возвращает строку или null - только null означает «ключа нет».
  2. JSON.parse может бросить, а сам доступ к localStorage - упасть в приватном режиме.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.