JavaScript可直接调用浏览器Web API;本地存储有localStorage(持久化)、sessionStorage(会话级)和IndexedDB(结构化数据库)三种方式,各适用于不同场景。
JavaScript 通过浏览器提供的全局对象(如 window、navigator、document、localStorage 等)直接调用 Web API,无需额外引入。本地存储主要有三种常用方式:localStorage、sessionStorage 和 IndexedDB,适用场景各不相同。
JavaScript 运行在浏览器环境中,天然可访问大量 Web API:
document.querySelector() 获取元素,element.addEventListener() 绑定事件,element.innerHTML = ... 更新内容;fetch() 发起 HTTP 请求,支持 Promise 和 async/await;navigator.geolocation.getCurrentPosition() 获取用户位置;Notification.requestPermission() 申请弹窗通知权限;history.pushState() 或 history.replaceState() 修改 URL 而不刷新页面。适合保存少量字符串数据(如用户偏好、主题设置),关闭浏览器后仍保留,上限通常为 5–10 MB(因浏览器而异):
localStorage.setItem('theme', 'dark');localStorage.getItem('theme');localStorage.removeItem('theme') 或 localStorage.clear();JSON.stringify(),读取时再 JSON.parse()。与 localStorage 接口一致,但数据仅在当前标签页生命周期内有效(关闭标签即清空),适合临时状态(如表单草稿、登录态中间值):
sessionStorage.setItem('draft', 'hello world');适合存储大量结构化数据(如离线邮件、缓存资源),支持索
引、事务和二进制(Blob/File):
idb.openDB('mydb', 1, { upgrade: (db) => db.createObjectStore('users') });不复杂但容易忽略:所有本地存储都受同源策略限制,不同协议、域名、端口之间互不可见;敏感信息(如 token)不应仅依赖前端存储,服务端仍需校验与过期控制。