localStorage是浏览器提供的持久化键值存储API,数据默认长期保存且不随页面刷新丢失;仅支持字符串,存对象需JSON序列化,作用域受协议、域名、端口限制,容量5–10MB,可封装工具函数增强实用性。

localStorage 是浏览器提供的 Web Storage API 之一,用于在用户本地持久化保存键值对数据,除非手动清除或用户主动删除,否则数据一直存在,且不随页面刷新或关闭浏览器而丢失。
基本用法:存、取、删、清
localStorage 的操作方法简单直接,所有值都会被自动转为字符串存储:
-
存储数据:使用
setItem(key, value),例如localStorage.setItem('username', 'Alice') -
读取数据:使用
getItem(key),例如const name = localStorage.getItem('username'),返回字符串或null -
删除某项:使用
removeItem(key),例如localStorage.removeItem('username') -
清空全部:使用
clear(),例如localStorage.clear()
存储对象或数组的正确方式
localStorage 只支持字符串,直接存对象会变成 [object Object]。必须先序列化再存储:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 存对象:
localStorage.setItem('user', JSON.stringify({name: 'Alice', age: 28})) - 取并解析:
const user = JSON.parse(localStorage.getItem('user')) || {} - 建议加上
|| {}或|| []防止JSON.parse(null)报错
注意作用域与限制
localStorage 的数据是**协议 + 域名 + 端口**三者完全一致时才可访问,比如 https://example.com 和 http://example.com 互不可见;localhost:3000 和 localhost:8080 也相互隔离。
立即学习“Java免费学习笔记(深入)”;
- 容量通常为 5–10 MB(因浏览器而异),远大于 Cookie,但不适合存大量二进制或超长文本
- 不参与网络请求,不会像 Cookie 那样被自动发送到服务器
- 仅限主线程使用(Web Worker 中需通过
postMessage间接操作)
实用小技巧
可以封装一个轻量工具函数提升开发体验:
- 自动处理 JSON 序列化/反序列化(如
setJSON('cart', items)) - 添加过期时间逻辑(通过存时间戳 + 读取时比对实现“伪过期”)
- 监听 storage 事件,在其他同源 tab 中响应数据变化:
window.addEventListener('storage', e => console.log(e.key, e.newValue))

















