Skip to content

localGet / localSet / localRemove

localGetlocalSetlocalRemove 三个方法用于操作浏览器的 localStorage 本地存储。localGet 读取值时会尝试 JSON.parse 反序列化,失败则返回原字符串;localSet 在写入前会使用 JSON.stringify 序列化;localRemove 直接删除指定键名。

语法

javascript
localGet(key)
localSet(key, value)
localRemove(key)

参数

  • key string
    • 存储在 localStorage 中的键名。
  • value any
    • localSet 要存储的值,可以是简单对象或简单类型。内部会通过 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),键名不存在时不报错。

注意事项

  1. localGet 的"尝试解析"行为意味着:若存入的原始字符串恰好是合法 JSON(如 "123"),取出的将是解析后的值(数字 123),而非字符串本身。
  2. localSet 依赖 JSON.stringify,无法存储 undefined、函数、循环引用对象等不可序列化的值。
  3. localStorage 中所有数据均以字符串形式保存,存储大小通常限制为 5~10MB(因浏览器而异)。
  4. localStorage 的读写是同步阻塞的,避免在主线程频繁读写大量数据。
  5. localStorage 只能在同源页面之间共享数据。
  6. 在隐私模式或存储被禁用时,setItem 可能会抛出异常,调用方应做好异常处理。

示例

基本用法

存取对象

删除数据

浏览器兼容性

localGetlocalSetlocalRemove 仅依赖 window.localStorage API,该 API 在所有现代浏览器(Chrome、Firefox、Safari、Edge)及 IE8+ 中均受支持,兼容性良好。

性能考虑

  • 时间复杂度: O(1) - 直接调用浏览器原生存储 API,无循环操作。
  • 同步阻塞: localStorage 的读写为同步操作,但单次调用耗时极低,可忽略不计。
  • 存储空间: 一般为 5~10MB,超出配额时 setItem 会抛出 QuotaExceededError

相关函数