Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: localStorage, serialization, JSON, stringify, parse

Почему данные в localStorage нужно сериализовать?

Проверяет понимание того, что localStorage хранит только строки, и необходимость преобразования сложных типов данных.

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

localStorage может хранить только строки. Если вы попытаетесь сохранить объект, массив или число, они будут автоматически преобразованы в строку через метод toString(), что приведет к потере данных или некорректному формату. Поэтому перед сохранением данные нужно сериализовать в JSON с помощью JSON.stringify(), а при чтении — десериализовать через JSON.parse().

Длинный ответ

Почему localStorage требует сериализации?

localStorage — это механизм хранения данных в браузере, который работает исключительно со строками. Когда вы пытаетесь сохранить значение, не являющееся строкой (например, объект, массив, число или булево значение), браузер автоматически вызывает метод toString() для этого значения. Для объектов это приводит к сохранению строки [object Object], что делает данные бесполезными.

Как правильно работать с данными?

Для корректного сохранения и восстановления сложных структур данных необходимо использовать JSON-сериализацию. Метод JSON.stringify() преобразует объект или массив в строку JSON, а JSON.parse() восстанавливает исходную структуру.

// Сохранение объекта
const user = { name: 'Alice', age: 30 };
localStorage.setItem('user', JSON.stringify(user));

// Чтение и восстановление
const storedUser = JSON.parse(localStorage.getItem('user'));
console.log(storedUser.name); // 'Alice'

Примеры проблем без сериализации

  • Сохранение числа: localStorage.setItem('count', 42) — сохранится строка '42', но при чтении это будет строка, а не число.
  • Сохранение массива: localStorage.setItem('arr', [1,2,3]) — сохранится строка '1,2,3', что не является корректным JSON.
  • Сохранение объекта: localStorage.setItem('obj', {a:1}) — сохранится строка '[object Object]'.

Вывод

Сериализация через JSON — обязательный шаг при работе с localStorage для любых данных, кроме простых строк. Это гарантирует целостность и правильный тип данных при последующем использовании.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

Ключевые слова

#localStorage

#serialization

#JSON

#stringify

#parse

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию