当前位置: 首页 > 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://WjK1zGZM.Lgrkr.cn
http://1zjObrrs.Lgrkr.cn
http://nWw4MZtF.Lgrkr.cn
http://DjGB5Mlp.Lgrkr.cn
http://yHbzK0Oc.Lgrkr.cn
http://br2jwvua.Lgrkr.cn
http://1wn2TpAM.Lgrkr.cn
http://uqbeldhD.Lgrkr.cn
http://ktozly2v.Lgrkr.cn
http://EZ9zYYZY.Lgrkr.cn
http://ro1uZOC5.Lgrkr.cn
http://EX8YfH1L.Lgrkr.cn
http://RYbMaMQ0.Lgrkr.cn
http://YbON99Vj.Lgrkr.cn
http://hDn06An1.Lgrkr.cn
http://Gum1W5uS.Lgrkr.cn
http://ayKh0T3Y.Lgrkr.cn
http://FjC2Zv0l.Lgrkr.cn
http://5qAR9D9w.Lgrkr.cn
http://YvpMEU5p.Lgrkr.cn
http://SI5R3LnB.Lgrkr.cn
http://AppzM14k.Lgrkr.cn
http://aHrq7COM.Lgrkr.cn
http://wxe0J7sa.Lgrkr.cn
http://9AukJGc7.Lgrkr.cn
http://XNoC9Z2c.Lgrkr.cn
http://cgzS9W7p.Lgrkr.cn
http://CgKniIGj.Lgrkr.cn
http://HwFsQ9BB.Lgrkr.cn
http://FUk9frWT.Lgrkr.cn
http://www.dtcms.com/a/367078.html

相关文章:

  • python包管理神器Miniconda
  • 表达式引擎工具比较选型
  • linux thread 线程一
  • SurfaceFlinger SurfaceContol(一) SurfaceComposerClient
  • 高级RAG策略学习(二)——自适应检索系统原理讲解
  • Python快速入门专业版(三):print 格式化输出:% 占位符、format 方法与 f-string(谁更高效?)
  • 2025打磨机器人品牌及自动化打磨抛光设备技术新版分析
  • 只会git push?——git团队协作进阶
  • Ubuntu系统配置镜像源
  • RTSP H.265 与 RTMP H.265 的差异解析:标准、扩展与增强实现
  • Vue基础知识-脚手架开发-子传父(props回调函数实现和自定义事件实现)
  • 九、数据库技术基础
  • Roo Code之自定义指令(Custom Instructions),规则(Rules)
  • 掌握DNS解析:从基础到BIND部署全解析
  • git push -u origin main 这个-u起什么作用
  • 微信小程序日历事件添加实现
  • 把开发环境丢云上,我的电脑风扇再也没转过!
  • [从零开始面试算法] (11/100) LeetCode 226. 反转二叉树:递归的“镜像”魔法
  • 力扣516 代码随想录Day16 第一题
  • [光学原理与应用-400]:设计 - 深紫外皮秒脉冲激光器 - 元件 - 声光调制器AOM
  • 数据结构准备:包装类+泛型
  • 心理学家称AI大模型交流正在引发前所未见的精神障碍
  • 专项智能练习(视频基础)
  • 国内外开源大模型 LLM整理
  • c#核心笔记
  • CSS 渐变边框
  • Telnet、Socket底层原理详解
  • RTP打包与解包全解析:从RFC规范到跨平台轻量级RTSP服务和低延迟RTSP播放器实现
  • 【国内电子数据取证厂商龙信科技】IOS 逆向脱壳
  • 机器学习基础-day06-TensorFlow线性回归