当前位置: 首页 > news >正文

JS本地存储

本地存储

@jarringslee

本地存储:将数据存储在本地浏览器中

常见的使用场景:

https://todomvc.com/examples/vanilla-es6/ 页面刷新数据不丢失

优点:

1、页面刷新或者关闭不丢失数据,实现数据持久化

2、容量较大,sessionStorage和 localStorage 约 5M 左右

localStorage本地存储分类

作用: 数据可以长期保留在本地浏览器中,刷新页面和关闭页面,数据也不会丢失

特性: 以键值对的形式存储,并且存储的是字符串, 省略了window

语法:

键值对中,键:已声明的变量不用加引号;值:纯数字类型不用加引号,但是存储后会被改为字符串类型

  • 存储数据 localStorage.setItem('键', '值')

    localStorage.setItem()
    
  • 获取数据 localStorage.getItem('键', '值')

  • 删除数据(只删除名字) localStorage.removeItem('键')

  • 存储数据 localStorage.setItem('键', '值')

sessionStorage

特性:

  • 用法跟localStorage基本相同,同一窗口(页面下可共享),以键值对的方式存储并使用

  • 区别是:生命周期是关闭浏览器窗口。当页面浏览器被关闭时,存储在 sessionStorage 的数据会被清除

  • 存储:sessionStorage.setItem(key,value)

  • 获取:sessionStorage.getItem(key)

  • 删除:sessionStorage.removeItem(key)

存储复杂数据类型

问题: 本地只能存储字符串,无法存储复杂数据类型.

解决: 需要将复杂数据类型转换成 JSON字符串,在存储到本地

语法: JSON.stringify(复杂数据类型) JSON.parse(复杂数据类型)

JSON字符串:

  • 首先是1个字符串
  • 属性名使用双引号引起来,不能单引号
  • 属性值如果是字符串型也必须双引号
<body><script>// 本地存储复杂数据类型const goods = {name: '小米',price: 1999}// localStorage.setItem('goods', goods)// console.log(localStorage.getItem('goods'))// 1. 把对象转换为JSON字符串  JSON.stringifylocalStorage.setItem('goods', JSON.stringify(goods))//作为值的goods不用加引号// console.log(typeof localStorage.getItem('goods'))// 2. 把JSON字符串转换为对象  JSON.parseconsole.log(JSON.parse(localStorage.getItem('goods')))//或者写为const str = localStorage.getItem('goos')console.log(JSON.parse(goods))</script>
</body>
http://www.xdnf.cn/news/1460125.html

相关文章:

  • Java String vs StringBuilder vs StringBuffer:一个性能优化的探险故事
  • C++学习记录(6)string部分操作的模拟实现
  • push pop 和 present dismiss
  • Leetcode 206. 反转链表 迭代/递归
  • 拦截器和过滤器(理论+实操)
  • Websocket链接如何配置nginx转发规则?
  • NV169NV200美光固态闪存NV182NV184
  • 云数据库服务(参考自腾讯云计算工程师认证课程)更新中......
  • 阿里云 ESA 实时log 发送没有quta的解决
  • 【机器学习】HanLP+Weka+Java=Random Forest算法模型
  • 【CS32L015C8T6】配置单片机时基TimeBase(内附完整代码及注释)
  • Mysql杂志(九)
  • [frontend]WebGL是啥?
  • AI入坑: Trae 通过http调用.net 开发的 mcp server
  • 批量生成角色及动画-统一角色为Mixamo骨骼(一)
  • Qt实现2048小游戏:看看AI如何评估棋盘策略实现“人机合一
  • 对于数据结构:链表的超详细保姆级解析
  • Java Thread线程2—线程锁synchronized,Lock,volatile
  • Python学习3.0使用Unittest框架运行测试用例
  • 无人机防风技术难点解析
  • TDengine TIMETRUNCATE 函数用户使用手册
  • Netty从0到1系列之Buffer【下】
  • 2025年百度商业AI技术创新大赛赛道二:视频广告生成推理性能优化-初赛第五名,复赛第九名方案分享
  • JVM 运行时数据区域
  • java面试中经常会问到的dubbo问题有哪些(基础版)
  • JVM 类加载全过程
  • Node-RED服务成本/价格很高?那这不到“三张”的怎么说?
  • QT卡顿的可能原因
  • TP8 数组在模板html文件中输出json字符串格式{“0“:“x1“,“1“:“x2“,“2“:“x3“}
  • 在Spring MVC中使用查询字符串与参数