前端本地存储 localStorage 实战练习(记住筛选、记住账号、退出登录、Cookie 解析)
本篇基于 jQuery 原生练习案例带你搞懂 localStorage 增删改查、对象序列化、业务场景落地同时简单了解 Cookie 字符串解析。日常后台管理系统经常会用到本地存储做表单回填、登录状态保存。一、什么是 localStoragelocalStorage 是浏览器提供的持久化本地存储关闭浏览器数据不会丢失只能存字符串。setItem(key,value)存储数据getItem(key)读取数据removeItem(key)删除单条数据clear()清空全部存储hasOwnProperty(‘key’)判断某个 key 是否存在⚠️ 重点不能直接存对象 / 数组必须先用 JSON.stringify() 转字符串读取回来再用 JSON.parse()转回对象。实战场景 1记住搜索筛选条件业务场景管理列表页用户输入关键词、选择下拉筛选条件刷新页面希望筛选条件自动回填不用重新选。实现思路页面加载读取goodsFilter如果有数据JSON.parse 转回对象回填到输入框、下拉框。点击保存筛选获取输入框和下拉的值打包成对象JSON.stringify转为字符串存入localStorage。js运行// 页面打开回填筛选条件let filterStr localStorage.getItem(‘goodsFilter’)if (filterStr) {let filterObj JSON.parse(filterStr)$(‘#keyword’).val(filterObj.keyword)$(‘#status’).val(filterObj.status)}// 点击保存筛选$(‘#saveFilter’).click(function () {let keyword $(‘#keyword’).val().trim()let status $(‘#status’).val()let filter {keyword: keyword,status: Number(status)}localStorage.setItem(‘goodsFilter’, JSON.stringify(filter))alert(‘筛选条件已保存刷新页面看回填效果’)})踩坑提醒直接存对象会变成 [object Object]无法读取对象必须序列化。实战场景 2记住账号记住登录账号勾选复选框生效业务场景登录页 “记住账号”勾选后下次打开页面自动回填账号取消记住就清除保存的账号。这里只存账号字符串不需要对象不用 JSON 转换。实现思路页面加载判断rememberAccount是否存在存在回填账号同时勾选复选框。监听复选框change事件勾选把输入框账号存入rememberAccount取消勾选removeItem删除这条存储js运行let $account $(‘#account’)let $rememberAccount $(‘#rememberAccount’)// 页面加载回填账号if (localStorage.hasOwnProperty(‘rememberAccount’)) {$account.val(localStorage.getItem(‘rememberAccount’))$rememberAccount.prop(‘checked’, true)} else {$rememberAccount.prop(‘checked’, false)}// 复选框切换$rememberAccount.on(‘change’, function () {if (this.checked) {let inputVal $account.val().trim()localStorage.setItem(‘rememberAccount’, inputVal)} else {localStorage.removeItem(‘rememberAccount’)}})小知识点hasOwnProperty(‘key’)专门用来判断本地存储有没有这条 key。实战场景 3退出登录两种清除存储方式业务场景系统退出登录有两种需求只删除登录相关token、rememberAccount其它本地存储保留。全部清空浏览器本地存储。实现思路部分删除多次调用removeItem()只删除指定 key其它数据保留。全部清空localStorage.clear()一键清空所有 key慎用js运行// 只删除登录相关数据保留其它存储$(‘#logout1’).on(‘click’, function () {localStorage.removeItem(‘token’)localStorage.removeItem(‘rememberAccount’)console.log(‘已删除token、rememberAccount’)})// 清空全部 localStorage一锅端$(‘#logout2’).on(‘click’, function () {localStorage.clear()console.log(‘全部本地存储已清空’)})业务建议真实项目退出登录优先用第一种只删登录凭证不要直接 clear会把用户其它缓存全部删掉。实战场景 4判断 token检测登录状态业务场景页面打开先检测本地有没有 token有 token 代表已登录没有就跳转到登录页。实现思路设置 token模拟登录成功往 localStorage 存 token 字符串。删除 token模拟退出登录删掉凭证。检测登录hasOwnProperty(‘token’)判断 key 是否存在做状态判断。js运行// 模拟登录设置token$(‘#setToken’).click(function () {localStorage.setItem(‘token’, ‘abcd123456’)console.log(‘已模拟设置token’)})// 删除token$(‘#delToken’).click(function () {localStorage.removeItem(‘token’)console.log(‘已删除token’)})// 检测登录状态$(‘#checkToken’).click(function () {if (localStorage.hasOwnProperty(‘token’)) {console.log(‘✅已登录’)} else {console.log(‘❌未登录请去登录页’)}})真实开发拿到 token 后一般存在请求头做接口鉴权localStorage 存 token 有 XSS 风险重要项目 token 更多放 Cookie。实战场景 5解析 document.cookie 字符串业务场景浏览器拿到的document.cookie是一长串分号隔开的字符串需要手动切割取出我们需要的值例如 token。示例原始字符串usernamezhangsan; tokenabc123456; themedark实现思路使用 split(‘; ‘) 以; 切割得到每一条键值对数组。循环数组每一项再次用 split(’’)切割分离 key 和 value。判断 key 等于token把 value 保存出来。js运行$(‘#parseCookie’).click(function () {// 模拟浏览器cookie字符串let cookieStr “usernamezhangsan; tokenabc123456; themedark”let arr cookieStr.split(‘; ‘)let targetToken ‘’for (let i 0; i arr.length; i) {let itemArr arr[i].split(’’)let key itemArr[0]let value itemArr[1]if (key ‘token’) {targetToken value}}console.log(‘解析出来的token’, targetToken)})Cookie 和 localStorage 简单区分localStorage仅客户端不会随请求自动发给后端存储量大永久保存。Cookie会自动跟随 http 请求传给后端可以设置过期时间容量小。总结localStorage 只能存字符串存对象必须 JSON.stringify读取用JSON.parse解析。局部删除用removeItem(key)全部清除才用clear()业务尽量少用 clear。hasOwnProperty(key)判断本地存储是否存在某个键做登录判断很常用。Cookie 是分号拼接长字符串要两次 split 切割才能取出对应值。业务场景筛选条件缓存、记住账号、登录凭证判断是后台系统高频用法。

相关新闻

2026年转行AI必看!大模型应用开发,普通人弯道超车的唯一机会?

2026年转行AI必看!大模型应用开发,普通人弯道超车的唯一机会?

转行AI,学了几个月连门都没摸到? 报了课、看了教程、研究了大模型,折腾半年发现越学越迷茫… 没关系,这是几乎每个转行者都要经历的,问题不是不够努力,而是努力的方向错了! 2026年,大…

2026/9/24 8:13:16 阅读更多 →
AgentRun:基于Serverless运行时重构AI Agent开发与部署全流程

AgentRun:基于Serverless运行时重构AI Agent开发与部署全流程

1. 项目概述:从“玩具”到“产品”的鸿沟如果你最近尝试过开发一个AI Agent,大概率会经历这样的心路历程:一开始兴致勃勃,用LangChain或LlamaIndex快速搭出一个能对话、能联网搜索的“智能体”,感觉未来已来。但当你试…

2026/10/8 12:25:06 阅读更多 →
Unity开发Pico4 MR应用:构建健壮手柄交互系统的架构与实践

Unity开发Pico4 MR应用:构建健壮手柄交互系统的架构与实践

1. 项目概述:为什么Pico4 MR的手柄交互值得深挖?如果你正在用Unity为Pico4开发混合现实(MR)应用,那么手柄按键交互系统绝对是你绕不开、也最值得花心思打磨的核心模块。这不仅仅是“按下A键触发一个事件”那么简单。在…

2026/10/8 17:08:21 阅读更多 →

最新新闻

黑科技下载器源码实战:多线程分块、断点续传与资源嗅探全解析

黑科技下载器源码实战:多线程分块、断点续传与资源嗅探全解析

简介:黑科下载器是一款面向普通用户的多端下载工具资源包,针对迅雷限速、百度云非会员龟速等常见痛点,提供网页版、PC端、安卓与iOS四种使用形态,适合希望摆脱会员限制、提升日常下载效率的用户参考使用。压缩包共267个文件&#…

2026/10/11 23:41:48 阅读更多 →
窗口函数 SUM() OVER() 详解:PARTITION BY 与 ORDER BY 的累计计算逻辑

窗口函数 SUM() OVER() 详解:PARTITION BY 与 ORDER BY 的累计计算逻辑

很多人学了窗口函数,一看到SUM() OVER(PARTITION BY ... ORDER BY ...)这种写法还是会懵,特别是ORDER BY加上之后,结果怎么就从“分组总和”变成“累加值”了?这篇文章继续走实战路线,我会把SUM() OVER()从基础语法到进…

2026/10/11 23:40:47 阅读更多 →
数据库课程设计:电力收费系统表结构、触发器与存储过程全解析

数据库课程设计:电力收费系统表结构、触发器与存储过程全解析

简介:《数据库课程设计电力公司收费系统.doc》是一份完整的数据库课程设计报告,面向高校计算机、软件工程等专业学生,适用于电力公司收费管理信息系统设计课题。文档围绕客户、用电类型、员工、用电信息、费用管理、收费登记六大核心数据表展…

2026/10/11 23:40:47 阅读更多 →
JMeter+InfluxDB+Grafana:搭建性能测试实时监控看板

JMeter+InfluxDB+Grafana:搭建性能测试实时监控看板

做性能测试的人基本都经历过这样的场景:JMeter压着压着,突然想知道当前的TPS到底有没有掉链子,响应时间的曲线是不是已经拐头向上,可日志刷得太快根本看不出来。一开始我也用JMeter自带的监听器,结果压测刚跑几分钟&am…

2026/10/11 23:40:47 阅读更多 →
内网安全评估:揭秘ACL权限滥用与横向移动链路

内网安全评估:揭秘ACL权限滥用与横向移动链路

内网安全评估做到第三周的时候,我在一份共享文件夹的ACL导出清单里看到了一个非常扎眼的组名:SHARE MODERATORS。这个组在域里并不显眼,不在本地管理员组,也不在任何域管理组里,可它的权限范围却覆盖了全公司的核心共享…

2026/10/11 23:40:47 阅读更多 →
同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建:多商户入驻与智能派单方案详解同城家政行业早已从单一门店自营模式,转向多商户平台化联营发展。平台整合全城多家家政公司、个体服务商、持证服务师傅,统一承接用户订单,通过智能调度完成订单分发与履约。相…

2026/10/11 23:39:46 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →