localstorage数据永久保存且同源共享,sessionstorage仅限当前标签页会话期;二者均需json序列化存取对象,有存储限制、无过期机制、受同源策略约束。

JavaScript 中的 BOM(Browser Object Model) 提供了对浏览器窗口及其环境的访问能力,而 localStorage 和 sessionStorage 是 BOM 中 window 对象的两个内置属性,用于在客户端实现轻量级、键值对形式的本地数据存储。
localStorage 和 sessionStorage 的核心区别
两者 API 完全一致,但生命周期和作用域不同:
-
localStorage:数据永久保存,除非手动清除(如调用
removeItem()或clear()),关闭标签页、重启浏览器甚至电脑都不会丢失;同一协议+域名+端口下的所有页面共享。 - sessionStorage:数据仅在当前浏览器标签页(或窗口)会话期间有效,关闭该标签页即自动清空;即使同源,新开标签页也是独立的存储空间。
基本操作方法(增删查改)
所有操作都通过 window.localStorage 或 window.sessionStorage 调用,通常可省略 window. 前缀:
-
存数据(set):使用
setItem(key, value)。注意:value 必须是字符串,若存对象需先JSON.stringify()。 -
取数据(get):使用
getItem(key),返回字符串,若需对象则要JSON.parse()。 -
删数据(remove):用
removeItem(key)删除指定键;用clear()清空全部。 -
查键名(key):用
key(index)获取第index个键名,配合length可遍历所有键。
示例:
抓取并分析 OpenClaw JSONL 会话日志,重建并回填代理记忆文件。适用于:(1) 模型切换后记忆不完整,(2) 验证记忆覆盖度,(3) 重建丢失记忆,(4) 通过 cron/heartbeat 自动同步每日记忆。支持简单提取及基于 LLM 的叙事摘要,并自动清理敏感信息。
localStorage.setItem("user", JSON.stringify(user));
let savedUser = JSON.parse(localStorage.getItem("user"));
使用注意事项和常见陷阱
实际开发中容易忽略的关键点:
-
存储限制约 5–10MB(因浏览器而异),不适合存大文件或大量数据;超限时会抛出
QuotaExceededError异常。 -
仅支持字符串值:直接存对象、数组、日期等会自动转为
[object Object],务必手动序列化/反序列化。 - 无过期机制:localStorage 不支持设置 TTL(有效期),如需自动过期,得自己在值中存时间戳并读取时校验。
- 同源策略严格:http 与 https、www 与非 www、不同端口均视为不同源,无法共享数据。
-
事件监听(storage 事件):当同一源下其他窗口修改 localStorage 时,当前窗口可监听
window.addEventListener('storage', callback)做响应(注意:触发方自身不会收到该事件)。
简单封装一个工具函数提升可用性
为避免重复写 JSON.stringify/parse,可封装通用方法:
set(key, data, type = 'local') {
const store = type === 'session' ? sessionStorage : localStorage;
store.setItem(key, JSON.stringify({ data, timestamp: Date.now() }));
},
get(key, type = 'local') {
const store = type === 'session' ? sessionStorage : localStorage;
const item = store.getItem(key);
return item ? JSON.parse(item).data : null;
},
remove(key, type = 'local') {
(type === 'session' ? sessionStorage : localStorage).removeItem(key);
}
};
// 使用:storage.set('theme', 'dark');
// storage.get('theme');
不复杂但容易忽略细节,掌握好生命周期、类型处理和边界情况,就能稳妥地用好这两个 Web 存储接口。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










