尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
副队长JavaScript教程(64)-本地存储:localStorage 与 sessionStorage
点此查看所有教程、项目、源码导航文章目录1. 背景2. WebStorage 基础特点3. localStorage 持久化存储4. sessionStorage 会话存储5. localStorage 和 sessionStorage 对比6. 入门常见坑点6.1 存入的值都会自动转为字符串6.2 不能直接存对象、数组6.3 只能在浏览器环境运行7. 小结1. 背景前面我们写的 DOM、BOM 案例有一个共同的问题只要刷新页面、关闭浏览器标签我们写的数据就全部消失了。因为 JS 里普通变量的数据是存放在内存中的页面一旦销毁内存就会释放数据没法保留。实际开发里我们经常需要把少量数据保存在浏览器里面下次打开页面还能继续读取这个能力就是本地存储。浏览器给我们提供了 WebStorage包含两个对象localStorage和sessionStorage。补充说明还有一种更早的存储方案叫做 Cookie它诞生时间更早使用场景更多和后端配合存储容量很小入门阶段我们先不深入讲解大家知道有这个东西即可。2. WebStorage 基础特点它们都是 window 身上的属性属于浏览器提供的 API完整写法window.localStorage、window.sessionStoragewindow 可以省略。只能保存字符串类型。如果直接放对象、数组会出现[object Object]这个问题这个问题我们放到下一篇结合 JSON 来解决。存储容量大概 5MB适合存放少量简单数据不适合存图片、视频这类大文件。存储的数据是按照「键值对」的形式存放一个键key对应一个值value。3. localStorage 持久化存储localStorage 是持久化本地存储。✅ 特点数据保存之后关闭标签页、关闭浏览器数据依然存在需要通过代码删除或者手动清除浏览器缓存数据才会消失。✅ 同一个域名下不同标签页可以共享 localStorage 的数据。它有 4 个核心方法// 3.1 存数据setItem(键名, 值)localStorage.setItem(username,小明);// 3.2 读数据getItem(键名)varnamelocalStorage.getItem(username);console.log(name);// 3.3 删除某一条数据removeItem(键名)localStorage.removeItem(username);// 3.4 清空全部数据clear()localStorage.clear();小提示如果读取一个不存在的 keygetItem 返回 null我们可以用这个判断数据有没有存过。我们来看下执行localStorage.setItem(username, 小明);代码后数据到底存到哪了这里可以发现实际上是存储到浏览器一个叫做“本地存储”的区域里面去了。4. sessionStorage 会话存储sessionStorage 是会话级别的存储。✅ 特点只在当前标签页会话内有效只要关闭这个标签页里面的数据直接清空。✅ 不同标签页之间sessionStorage 互相隔离不能共享。方法和 localStorage 完全一模一样只是对象名字不同// 存sessionStorage.setItem(age,18);// 读varagesessionStorage.getItem(age);console.log(age);// 删除单条sessionStorage.removeItem(age);// 清空全部sessionStorage.clear();我们继续看下执行sessionStorage.setItem(age, 18);后数据存储到哪了。这里可以发现实际上是存储到浏览器一个叫做“Session Storage”的区域里面去了。5. localStorage 和 sessionStorage 对比表格对比项localStoragesessionStorage生命周期永久保存需要手动清除当前标签页关闭标签页自动清空跨标签页共享同域名下多个标签页共享每个标签页独立互不共享APIsetItem / getItem / removeItem / clear和左边完全一样存储大小约 5MB约 5MB6. 入门常见坑点6.1 存入的值都会自动转为字符串localStorage.setItem(num,100);varreslocalStorage.getItem(num);console.log(typeofres);// string存的数字拿出来变成字符串如果后续需要使用数字进行计算读取之后要自己转成数字。6.2 不能直接存对象、数组varuser{name:小红,age:20};localStorage.setItem(user,user);varulocalStorage.getItem(user);console.log(u);// [object Object]不是我们想要的数据这个问题暂时先记住下一篇学习 JSON 之后就可以解决对象、数组的存储。6.3 只能在浏览器环境运行localStorage、sessionStorage 是浏览器提供的 API不属于 ES 语法在 Node.js 里面不能直接使用。7. 小结WebStorage 包含 localStorage、sessionStorage用来在浏览器本地保存少量数据。localStorage持久存储关闭浏览器数据还在同域名标签页共享。sessionStorage会话存储关闭当前标签页数据直接消失标签页隔离。四个通用方法setItem 存、getItem 读、removeItem 删单条、clear 清空全部。存储只能存字符串数字取出会变成字符串对象数组不能直接存储下一篇结合 JSON 实战。
RELATED

相关推荐

副队长JavaScript教程(63)-BOM之窗口大小与页面滚动

副队长JavaScript教程(63)-BOM之窗口大小与页面滚动

点此查看 所有教程、项目、源码导航 文章目录1. 背景2. 获取浏览器窗口可视区域大小2.1 innerWidth、innerHeight2.2 outerWidth、outerHeight(了解)3. 窗口缩放事件 resize4. 获取页面滚动距离 scrollX、scrollY5. 控制页面滚动的方法5.1 scrollTo (x, …

📅 2026/10/30 17:39:41
认识Minilytics:免费自托管分析工具,告诉你到底是哪条推文让你赚了钱

认识Minilytics:免费自托管分析工具,告诉你到底是哪条推文让你赚了钱

【免费下载链接】minilytics Opensource Revenue-first analytics for indie hackers & solo founders 项目地址: https://gitcode.com/gh_mirrors/mi/minilytics 点击查看 免费下载 Minilytics 是一款免费自托管的网站分析工具,专为独立开发者和 …

📅 2026/10/30 17:39:41
脉冲雷达回波的距离门重排与匹配滤波原理及实现

脉冲雷达回波的距离门重排与匹配滤波原理及实现

简介:这份压缩包提供 single.m MATLAB 脚本,面向雷达信号处理入门学习者与相关课题研究者,集中演示脉冲雷达回波处理中的匹配滤波、距离门设置与距离门重排流程,可直接用于理解和验证基本处理链路。包内仅含 1 个 m 文件&#xff…

📅 2026/10/30 17:34:40
MORE NEWS

更多资讯

📰

副队长JavaScript教程(62)-BOM之定时器

点此查看 所有教程、项目、源码导航 文章目录1. 背景2. 延时定时器 setTimeout2.1 基础语法2.2 取消延时定时器 clearTimeout3. 循环定时器 setInterval3.1 基础语法3.2 取消循环定时器 clearInterval4. 两个定时器的对比5. 入门阶段重要注意点5.1 时间只是**预期时间**&#x…

📰

副队长JavaScript教程(61)-BOM之location、history、navigator常见用法

点此查看 所有教程、项目、源码导航 文章目录1. 背景2. location 对象2.1 读取地址信息2.2 页面跳转2.3 刷新页面3. history 对象3.1 后退3.2 前进3.3 跳转到指定历史记录4. navigator 对象4.1 navigator.userAgent(最核心)4.2 navigator.platform 获取操…

📰

数据图表也有设计门槛:6款主流产品谁能做出更专业的商业图表?

摘要:很多人以为数据图表就是拖个字段、选个图形,但真正专业的商业图表,差距藏在图表类型的丰富度、默认样式的审美、交互的细腻程度,以及能否让业务人员自己做出合格图表。这篇横评 6 款主流 BI 产品,从图表设计能力的…

📰

AWESOME-OCR-LLM完整指南:一文读懂大模型时代OCR的900+篇论文全景

【免费下载链接】AWESOME-OCR-LLM OCR in the Era of Large Language Models 项目地址: https://gitcode.com/gh_mirrors/aw/AWESOME-OCR-LLM 点击查看 免费下载 如果你正在关注**大模型时代OCR(OCR in the LLM Era)**的研究进展&#xff0c…

📰

MediaPipe手势识别Android集成实战:从关键点到源码避坑

简介:基于MediaPipe的Android Studio手势识别系统源码包,聚焦实时手势追踪与交互控制,适合移动开发学习者、高校人工智能与人机交互专业学生及科研人员参考。代码集成21个手部关键点实时追踪模型、多线程处理架构与手势轨迹平滑算法&#xff…

📰

一枚回形针的门道:材料工艺、办公整理与手工改造全拆解

一个小小的回形针,英文名叫paperclip,大概是办公桌上最不起眼的东西。但就是这枚金属丝弯成的小圈,在很多人手里能玩出完全不同的价值:有人用它固定文件、理线扎带,有人用它做书签、撬SIM卡槽,还有人把它当…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬