存个对象到localStorage,结果[object Object]?

📅 2026/6/26 3:03:42
存个对象到localStorage,结果[object Object]?
博客主页瑕疵的CSDN主页 Gitee主页瑕疵的gitee主页⏩ 文章专栏《热点资讯》存个对象到localStorage结果[object Object]目录昨晚写登录状态随手存个user对象。代码写得贼溜localStorage.setItem(user, { name: 张三, age: 25 });第二天取出来const user localStorage.getItem(user);console.log(user); // 输出 [object Object]当场傻眼。这玩意儿咋回事根源localStorage 他妈的只认字符串你存个对象它自动调用 toString()直接吐出 [object Object]。不是它不认对象是它压根儿没这个功能。就像你往水桶里塞个苹果桶只认水苹果塞进去就变成“水果”了——但你塞了块砖头桶只能回你“砖头”。解决代码错误写法别学// 存对象 → 会变成 [object Object]localStorage.setItem(user, { name: 张三, age: 25 });// 取出来 → 拿到字符串 [object Object]const user localStorage.getItem(user);console.log(user); // [object Object]正确写法必须用// 存之前转成字符串const user { name: 张三, age: 25 };localStorage.setItem(user, JSON.stringify(user)); // 关键用 stringify// 取出来转回对象const stored localStorage.getItem(user);const parsedUser JSON.parse(stored); // 关键用 parseconsole.log(parsedUser); // { name: 张三, age: 25 }避坑总结localStorage 是字符串仓库不是对象仓库。存任何东西都得先转成字符串。用 JSON.stringify 存JSON.parse 取。这是铁律。别忘了处理空值存了 null 或 undefined 时解析会报错。// 安全写法const stored localStorage.getItem(user);const user stored ? JSON.parse(stored) : null;常见坑以为存数组能直接用。存数组也得 stringifylocalStorage.setItem(list, JSON.stringify([1,2,3]));我去年被这问题坑到凌晨三点。同事还笑我“就这还前端呢”现在写代码前必默念存对象先转 JSON。别让 [object Object] 再出来丢人。