如何操作浏览器存储_javascript中localStorage怎么用?


localStorage是浏览器提供的同源、持久化字符串存储机制,容量5–10MB,需手动JSON序列化对象,支持setItem/getItem/removeItem/clear,可通过storage事件监听跨标签页变更,但不防XSS且无过期机制。

localStorage 是浏览器提供的一种简单持久化存储方式,数据保存在用户本地,关闭页面甚至重启浏览器也不会丢失,适合存少量字符串数据(比如用户偏好、登录状态标记等)。

基本用法:setItem 和 getItem

存数据用 localStorage.setItem(key, value),取数据用 localStorage.getItem(key)。注意:value 必须是字符串,如果要存对象,得先用 JSON.stringify() 转成字符串;读出来时再用 JSON.parse() 还原。

  • 存一个主题设置:localStorage.setItem('theme', 'dark')
  • 存一个用户信息对象:localStorage.setItem('user', JSON.stringify({name: '张三', id: 101}))
  • 读取并解析:const user = JSON.parse(localStorage.getItem('user'))

删除和清空数据

removeItem(key) 删除某一项,用 clear() 清空全部 localStorage(谨慎操作,会影响所有键值)。

  • 删掉主题设置:localStorage.removeItem('theme')
  • 清空当前域名下所有 localStorage:localStorage.clear()

注意事项和常见问题

localStorage 是**同源限制**的(协议+域名+端口完全一致才可访问),且容量一般为 5–10MB(因浏览器而异)。它不支持过期时间,也不能跨窗口实时同步变更(需配合 storage 事件监听)。

  • 监听其他标签页的 localStorage 变更:在 window 上监听 storage 事件,但注意:触发该事件的页面自身不会收到(只通知其他同源窗口)
  • 不能存函数、undefined、Symbol 等非字符串/非可序列化值
  • 敏感信息(如 token)不建议直接存在 localStorage,有 XSS 风险

简易封装一个安全的工具函数

可以自己封装一层,自动处理 JSON 序列化和错误捕获,让使用更稳:

const LS = {
set(key, value) {
try {
localStorage.setItem(key, JSON.stringify(value));
} catch (e) {
console.warn('localStorage set failed:', e);
}
},
get(key) {
try {
const str = localStorage.getItem(key);
return str ? JSON.parse(str) : null;
} catch (e) {
console.warn('localStorage get failed:', e);
return null;
}
}
};

用起来就更顺手了:LS.set('cart', [{id:1, qty:2}]); const cart = LS.get('cart');

基本上就这些。localStorage 不复杂但容易忽略细节,用对了能省不少事。


# javascript  # java  # js  # json  # 浏览器  # 端口  # 工具  # ai  # win  # 常见问题  # 持久化存储  # xss  # NULL  # 封装  # try  # catch  # Token  # const  # 字符串  # console  # undefined  # symbol  # 对象  # 事件  # 清空  # 序列化  # 就更  # 再用  # 可通过  # 重启  # 它不  # 才可  # 先用  # 转成 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: 如何在 ACF 中正确更新嵌套多层的 Group 字段子字段  c++怎么操作redis数据库_c++ hiredis库连接与命令执行【实战】  Win11怎么查看激活状态_查询Windows 11是否已永久激活【详解】  如何在Golang中使用log包输出不同级别日志_Golang log日志管理与分类  Win11怎么关闭触摸键盘图标_Windows11任务栏系统托盘设置  如何高效获取循环末次生成的 NumPy 数组最后一个元素(无需额外循环)  英国搜索:多数英国人认为语言搜索是未来搜索  php8.4匿名类怎么用_php8.4匿名类创建与使用场景【介绍】  Windows10系统怎么查看CPU温度_Win10性能监视器查看硬件数据  如何使用Golang指针与结构体结合_修改结构体内部字段  Win11怎么打开旧版计算器_Win11恢复传统计算器应用【详解】  Win10如何卸载Skype_Win10卸载Skype步骤【步骤】  Windows电脑如何进入安全模式?(多种按键方法)  Win11局域网共享怎么设置 Win11文件夹网络共享教程【详解】  Win11怎么格式化U盘_Win11系统U盘格式化与文件系统选择【教程】  PHP主流架构怎么监控运行状态_工具推荐【操作】  PHP接收参数值为空怎么办_判断和处理空参数方法说明【说明】  Win11怎么开启专注模式_Windows11时钟应用Focus Session  Windows10怎么查看硬件信息_Windows10硬件信息查询方法【指南】  Python项目回滚策略_发布安全说明【指导】  Python音视频处理高级项目教程_FFmpegPydub剪辑与特效  如何使用Golang template生成文本模板_动态生成HTML或文本  如何使用Golang理解结构体指针方法接收者_Golang修改字段实践  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Python与Docker容器化部署实战_镜像构建与CI/CD流程  Win11怎样安装剪映专业版_Win11安装剪映教程【步骤】  Python数据抓取合法性_合规说明【指导】  Python文件管理规范_工程实践说明【指导】  Windows10蓝屏SYSTEM_SERVICE_EXCEPTION_Win10驱动冲突排查  Win10怎样设置多显示器_Win10多显示器扩展设置【攻略】  Win11如何设置环境变量 Win11添加和修改系统与用户变量【教程】  如何在 IIS 上为 ASP.NET 6 应用排除特定目录并交由 PHP 处理  Win11截图快捷键是什么_Win11自带截图工具使用技巧【汇总】  如何在 Go 中正确测试带 Cookie 的 HTTP 请求  c++如何获取map中所有的键_C++遍历键值对提取所有key的方法  php8.4如何实现队列任务_php8.4redis队列简单实现方法【教程】  如何理解Go指针和内存分配关系_Go Pointer内存Model解析  php485返回数据不完整怎么办_php485数据分包重组处理方法【教程】  Win10怎样卸载TeamViewer_Win10卸载TeamViewer步骤【教程】  MAC如何快速搜索大文件_MAC磁盘空间分析与冗余数据清理【方法】  Win11怎么关闭右下角弹窗_Win11拦截系统通知广告【设置】  Python对象生命周期管理_创建销毁说明【指导】  VSC怎么快速定位PHP错误行_错误追踪设置法【方法】  Linux怎么实现内网穿透_Linux安装Frp客户端与服务端配置【方法】  如何在Golang中使用replace替换模块_指定本地或远程路径  Win11怎么关闭搜索历史_Win11清除任务栏搜索记录【隐私】  php删除数据怎么清空表_truncate与delete区别及用法【汇总】  Win10怎样安装Excel数据分析工具_Win10安装分析工具包步骤【教程】  mac怎么看硬盘大小_MAC查看磁盘存储空间与文件占用【详解】  Windows11怎么用“记事本”自动换行与编码 Windows11记事本启用自动换行选择UTF-8编码避免乱码兼容多语言【教程】 

 2025-12-16

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.