5月27日 01:05

localStorage 对象有哪些 API?

localStorage 是浏览器提供的持久化键值存储,数据不随页面关闭而清除。API 一共就 5 个方法和 1 个属性:

  • setItem(key, value):存数据。key 和 value 都是字符串。存对象需要用 JSON.stringify
  • getItem(key):取数据。key 不存在返回 null
  • removeItem(key):删单个 key
  • clear():清空所有数据(注意:清的是当前域名下的所有 localStorage)
  • key(index):按索引获取 key 名,用于遍历
  • length:只读属性,返回存储的条目数

存储对象的正确姿势:

javascript
localStorage.setItem('user', JSON.stringify({ name: 'John', age: 30 })); const user = JSON.parse(localStorage.getItem('user'));

追问

localStorage 和 sessionStorage 有什么区别?

  • 生命周期:localStorage 永久存储,sessionStorage 关闭标签页就清除
  • 作用域:两者都是按域名隔离,但 sessionStorage 额外按标签页隔离
  • API 完全一致

localStorage 有什么限制?

  • 容量 5-10MB(不同浏览器不同)
  • 只能存字符串
  • 同步 API,大容量读写会阻塞主线程
  • 不能存敏感信息(明文存储,XSS 可直接读取)
  • 不支持过期时间,需要自己实现
  • 需要随 HTTP 请求自动发送(如身份认证)→ Cookie
  • 纯前端存储、不随请求发送 → localStorage
  • 需要服务端可读 → Cookie(设置 HttpOnly 防止 XSS 读取)
  • 容量超过 4KB → localStorage(Cookie 限制 4KB)
标签:JavaScript前端