localGet / localSet / localRemove
localGet、localSet、localRemove 三个方法用于操作浏览器的 localStorage 本地存储。localGet 读取值时会尝试 JSON.parse 反序列化,失败则返回原字符串;localSet 在写入前会使用 JSON.stringify 序列化;localRemove 直接删除指定键名。
语法
javascript
localGet(key)
localSet(key, value)
localRemove(key)参数
keystring- 存储在
localStorage中的键名。
- 存储在
valueanylocalSet要存储的值,可以是简单对象或简单类型。内部会通过JSON.stringify序列化后存储。
返回值
localGet string|Object|null
返回 localStorage 中对应键名的值。若能通过 JSON.parse 转化为对象则返回对象,否则返回原字符串;键名不存在时返回 null。
localSet void
无返回值。
localRemove void
无返回值。
描述
localStorage 是浏览器提供的持久化本地存储机制,存储的数据没有过期时间,除非主动清除,否则会一直保留。
localGet(key):先调用window.localStorage.getItem(key)取得原始字符串,再尝试JSON.parse反序列化。若解析失败(例如存的是普通字符串),则返回原字符串。若键不存在,返回null。localSet(key, value):内部使用JSON.stringify(value)序列化后调用window.localStorage.setItem(key, ...)写入。因此可以直接存取对象、数组、数字、布尔值等。localRemove(key):内部调用window.localStorage.removeItem(key),键名不存在时不报错。
注意事项
localGet的"尝试解析"行为意味着:若存入的原始字符串恰好是合法 JSON(如"123"),取出的将是解析后的值(数字123),而非字符串本身。localSet依赖JSON.stringify,无法存储undefined、函数、循环引用对象等不可序列化的值。localStorage中所有数据均以字符串形式保存,存储大小通常限制为 5~10MB(因浏览器而异)。localStorage的读写是同步阻塞的,避免在主线程频繁读写大量数据。localStorage只能在同源页面之间共享数据。- 在隐私模式或存储被禁用时,
setItem可能会抛出异常,调用方应做好异常处理。
示例
基本用法
存取对象
删除数据
浏览器兼容性
localGet、localSet、localRemove 仅依赖 window.localStorage API,该 API 在所有现代浏览器(Chrome、Firefox、Safari、Edge)及 IE8+ 中均受支持,兼容性良好。
性能考虑
- 时间复杂度: O(1) - 直接调用浏览器原生存储 API,无循环操作。
- 同步阻塞:
localStorage的读写为同步操作,但单次调用耗时极低,可忽略不计。 - 存储空间: 一般为 5~10MB,超出配额时
setItem会抛出QuotaExceededError。
相关函数
sessionGet / sessionSet / sessionRemove- 操作sessionStorage,会话级存储