localstorage 是 js 中用于持久化存储字符串数据的工具,即使页面刷新或浏览器关闭也不会丢失。它仅支持字符串类型,存储对象或数组时需先用 json.stringify() 转换,读取时用 json.parse() 还原。1. 存数据用 setitem(key, value);2. 取数据用 getitem(key);3. 删数据用 removeitem(key);4. 清空用 clear();5. 查看 key 用 key(index)。适合存用户偏好、静态缓存等非敏感信息,不适合频繁修改或敏感数据。使用时需注意:必须手动转换数据类型、避免超限、不可跨域共享、频繁读写影响性能,建议结合默认值处理以提高健壮性。
localStorage 是 JS 里用来做本地存储的一个工具,简单又实用。它能存字符串数据,即使页面刷新或者浏览器关闭了,数据也不会丢。关键在于怎么用对地方,别乱用。
localStorage 能存什么?
localStorage 只支持字符串类型的数据。如果你要存对象、数组、数字这些,得先转成字符串。最常用的方法就是 JSON.stringify()。
比如:
const user = { name: "Tom", age: 25 }; localStorage.setItem("user", JSON.stringify(user));
反过来取的时候要用 JSON.parse() 把字符串还原回来:
const storedUser = JSON.parse(localStorage.getItem("user"));
别想着存函数或者 undefined,那些会被忽略或者出错。
基本操作:增删改查
localStorage 的 API 很简单,就几个方法:
- 存数据:localStorage.setItem(key, value)
- 取数据:localStorage.getItem(key)
- 删数据:localStorage.removeItem(key)
- 清空所有:localStorage.clear()
- 查看 key:localStorage.key(index)(用于遍历)
举个例子:
localStorage.setItem("theme", "dark"); console.log(localStorage.getItem("theme")); // 输出 "dark" localStorage.removeItem("theme");
注意:虽然操作起来像对象赋值一样方便,但它是同步的,不能异步操作,大数据量可能会卡界面。
什么时候适合用 localStorage?
- 需要持久化保存用户偏好,比如主题、语言设置。
- 存 token 或登录状态信息(不过要注意安全问题)。
- 做缓存,减少重复请求,比如一些静态配置数据。
- 不适合频繁变动的数据,也不适合敏感信息(因为是明文存储)。
如果只是临时用一下,可以用 sessionStorage,关掉标签页就自动清了。
使用时容易踩的坑
- 忘记转字符串:直接塞对象进去会变成 [object Object]。
- 超过容量限制:主流浏览器一般是 5MB 左右,超了会报错。
- 跨域不共享:不同域名下的 localStorage 是隔离的,子域名也不行。
- 读写频繁影响性能:特别是循环里面频繁 setItem,尽量合并操作。
建议在存之前判断是否存在,取值之后也最好做下默认值处理:
const theme = localStorage.getItem("theme") || "default";
基本上就这些。localStorage 用起来不难,但要注意场景和规范,别滥用就行。
评论(已关闭)
评论已关闭