前置知识: JavaScript

Web存储API

00:00
1 min Beginner 2026/6/14

localStorage、sessionStorage与Cookie

1. Web 存储对比

存储方式容量生命周期请求发送
Cookie~4KB可设过期时间
localStorage~5-10MB永久
sessionStorage~5-10MB标签关闭

2. localStorage

localStorage.setItem('name', 'Alice');
localStorage.getItem('name'); // 'Alice'
localStorage.removeItem('name');
localStorage.clear();

// 存储对象
const storage = {
  get(key, defaultValue = null) {
    const value = localStorage.getItem(key);
    if (value === null) return defaultValue;
    try {
      return JSON.parse(value);
    } catch {
      return value;
    }
  },
  set(key, value) {
    localStorage.setItem(key, JSON.stringify(value));
  },
};

storage.set('settings', { theme: 'dark' });
storage.get('settings'); // { theme: 'dark' }

// 跨标签页监听
window.addEventListener('storage', (e) => {
  console.log(e.key, e.oldValue, e.newValue);
});
document.cookie = 'name=Alice; max-age=86400; path=/; secure; SameSite=Strict';

// 解析
function getCookies() {
  return document.cookie.split('; ').reduce((acc, pair) => {
    const [key, value] = pair.split('=');
    acc[decodeURIComponent(key)] = decodeURIComponent(value);
    return acc;
  }, {});
}

// 删除
document.cookie = 'name=; max-age=0; path=/';
属性说明
max-age秒数
secureHTTPS
SameSiteStrict/Lax/None
HttpOnlyJS 无法访问(防 XSS)

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式