localstorage存数据需先将对象json.stringify()转字符串再setitem(),键名须为字符串且大小写敏感;读取时用getitem()并json.parse()还原,注意5–10mb限制及跨域不共享等限制。

用 localStorage 存数据很简单,核心就两步:把数据转成字符串,再用 setItem() 方法存进去。
必须用字符串存,对象要先 JSON.stringify()
localStorage 只接受字符串值,直接存对象、数组、数字或布尔值会自动转成字符串(比如 {name: "张三"} 会变成 [object Object],完全丢失原意)。所以对象类数据一定要先用 JSON.stringify() 转换:
-
// ✅ 正确:序列化后再存
const user = { name: "张三", age: 25 };localStorage.setItem("user", JSON.stringify(user)); -
// ❌ 错误:直接存对象(结果是 "[object Object]")
localStorage.setItem("user", user);
用 setItem(key, value) 写入,key 是字符串标识
setItem() 接收两个参数:第一个是键名(必须是字符串),第二个是值(必须是字符串):
-
localStorage.setItem("theme", "dark");—— 存一个主题设置 -
localStorage.setItem("token", "abc123xyz");—— 存登录凭证 - 键名建议用有意义的英文,避免空格和特殊符号,大小写敏感
存完可以立即用 getItem() 读出来验证
存好后可以用 getItem() 拿值,注意它返回的是字符串,对象还要 JSON.parse() 还原:
-
const savedUser = localStorage.getItem("user");→ 返回"{"name":"张三","age":25}" -
const userObj = JSON.parse(savedUser);→ 得到原始对象 - 如果键不存在,
getItem()返回null,使用前建议判空
注意存储限制和常见坑
大多数浏览器限制约 5–10MB(按域名计算),超出会报 QuotaExceededError。另外:
- 数据永久保存,除非手动清除(
removeItem()或clear())或用户清缓存 - 不同协议(
httpvshttps)、子域名(app.example.comvsapi.example.com)之间不共享 - 不能跨浏览器同步,也不适合存敏感信息(如密码、完整身份证号)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











