浏览器本地存储 Web Storage
浏览器本地存储 Web Storage
你别睡这么晚:::tip 浏览器本地存储
浏览器本地存储包括两个对象:sessionStorage
和 localStorage
,它们都是 Storage
的实例对象。
1 | window.localStorage instanceof Storage // true |
:::
基本使用
访问数据:getItem()
添加、修改数据:setItem()
删除数据:removeItem()
清空数据:clear()
获取给定位置的键名:key()
1 | // 以 localStorage 为例,sessionStorage 都一样 |
注意事项
只能够存储字符串,不是字符串的会调用 toString()
方法转成字符串。
如果想要存储对象,需要使用 JSON.stringify()
转成 JSON 字符串再存储,以后再用 JSON.parse()
还原成对象。
如果无法转成字符串,则会报错。比如 Symbol
类型的变量无法转成字符串。
1 | let obj = { book: 'HTTP', price: 46 } |
sessionStorage
与 localStorage
对比
sessionStorage
是跨会话存储机制,localStorage
是永久存储机制。
作用时间:sessionStorage
在窗口关闭后就会失效,localStorage
是永久存储,除非手动通过 JS 删除或清除浏览器缓存。
作用范围:sessionStorage
的数据只能在同源(协议域名端口号相同)、同一个窗口共享,localStorage
的数据在同源、不同窗口共享(同一个浏览器)。