localStorage是浏览器提供的同源键值对存储机制,适合存少量字符串数据,需用setItem()存(非字符串须JSON.stringify)、getItem()取(返回字符串须手动解析)、removeItem()或clear()删,容量5–10MB且不加密。

localStorage 是浏览器提供的简单键值对存储机制,适合存少量字符串数据,比如用户偏好、登录状态标识等。它不随页面刷新丢失,但仅限同源(协议+域名+端口相同)且不能跨浏览器同步。
存数据:用 setItem()
把数据存进 localStorage,必须是字符串。非字符串类型(如对象、数组、数字)要先转成 JSON 字符串,否则会自动调用 .toString(),导致意外结果(比如对象变成 [object Object])。
-
存字符串:
localStorage.setItem('theme', 'dark') -
存对象:
localStorage.setItem('user', JSON.stringify({name: 'Alice', age: 30})) -
存布尔值或数字:
localStorage.setItem('isLoggedIn', JSON.stringify(true))或localStorage.setItem('count', '5')(直接写字符串也行,但统一用 JSON 更稳妥)
取数据:用 getItem()
读出来的值始终是字符串,需要手动解析还原类型。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
取字符串:
const theme = localStorage.getItem('theme')→ 返回'dark' -
取对象:
const userStr = localStorage.getItem('user'); const user = userStr ? JSON.parse(userStr) : null(注意判空,避免 JSON.parse 报错) -
取布尔/数字:
const isLoggedIn = JSON.parse(localStorage.getItem('isLoggedIn'))或const count = Number(localStorage.getItem('count'))
删数据:用 removeItem() 或 clear()
按需清理,避免长期堆积无效数据。
立即学习“Java免费学习笔记(深入)”;
-
删单个键:
localStorage.removeItem('theme') -
清空全部(谨慎!):
localStorage.clear()—— 会删掉当前域下所有 localStorage 数据
注意限制和边界情况
localStorage 容量通常为 5–10MB(因浏览器而异),超限会报 QuotaExceededError。另外它不支持监听变化(除非用 storage 事件监听其他标签页的修改),也不加密,敏感信息(如 token)建议用 httpOnly Cookie 或内存存储。
- 存前可先检查容量余量(虽无直接 API,但可通过 try-catch 捕获异常)
- 避免直接存函数、undefined、Symbol 等无法 JSON 序列化的值
- 隐私模式下部分浏览器可能禁用 localStorage,使用前可用
try { localStorage.setItem('test', 'ok') } catch(e) { /* fallback */ }做兼容处理

















