JavaScript本地存储主要有localStorage、sessionStorage、cookies、IndexedDB和Cache API;localStorage长期同源存储且容量5–10MB,sessionStorage仅限单标签会话,cookies自动随请求发送且体积≤4KB,IndexedDB支持大量结构化异步存储。
JavaScript 本地存储主要有三种常用方式:localStorage、sessionStorage 和 cookies(配合 document.cookie 使用),此外还有更现代的 IndexedDB 和实验性的 Cache API(主要用于资源缓存)。它们适用场景不同,核心区别在于生命周期、容量限制和作用域。
数据永久保存(除非手动清除),关闭浏览器也不丢失,仅限同源(协议+域名+端口)访问。
JSON.stringify(),读取时用 JSON.parse()
localStorage.setItem('key', 'value')、localStorage.getItem('key')、localStorage.removeItem('key')
数据仅在当前浏览器标签页有效,关闭该标签即清空,同样要求同源,其他行为与 localStorage 基本一致。
localStorage 换成 sessionStorage
每次 HTTP 请求都会自动携带(可配置 HttpOnly 或 Secure),体积小(单个通常 ≤4KB),需注意安全性与性能影响。
document.cookie = 'name=value; expires=...; path=/; secure; SameSite=Lax' 设置适合存储大量结构化数据(如离线邮件、缓存图片、日志),支持索引、事务、增删改查,但 API 较复杂。
基本上就这些。日常开发中,优先选 localStorage 或 sessionStorage;要持久化登录态且需服务端验证,用 Cookie;存大量离线数据或需查询能力,上 IndexedDB。不复杂但容易忽略的是:别往 localStorage 存敏感信息,它完全暴露在前端;也别依赖它做关键业务逻辑,毕竟用户可以随时清空。