如何操作浏览器存储_javascript中localStorage怎么用?

localStorage是浏览器提供的同源、持久化字符串存储机制,容量5–10MB,需手动JSON序列化对象,支持setItem/getItem/removeItem/clear,可通过storage事件监听跨标签页变更,但不防XSS且无过期机制。

如何操作浏览器存储_javascript中localstorage怎么用?

localStorage 是浏览器提供的一种简单持久化存储方式,数据保存在用户本地,关闭页面甚至重启浏览器也不会丢失,适合存少量字符串数据(比如用户偏好、登录状态标记等)。

基本用法:setItem 和 getItem

存数据用 localStorage.setItem(key, value),取数据用 localStorage.getItem(key)。注意:value 必须是字符串,如果要存对象,得先用 JSON.stringify() 转成字符串;读出来时再用 JSON.parse() 还原。

存一个主题设置:localStorage.setItem('theme', 'dark') 存一个用户信息对象:localStorage.setItem('user', JSON.stringify({name: '张三', id: 101})) 读取并解析:const user = JSON.parse(localStorage.getItem('user'))

删除和清空数据

removeItem(key) 删除某一项,用 clear() 清空全部 localStorage(谨慎操作,会影响所有键值)。

删掉主题设置:localStorage.removeItem('theme') 清空当前域名下所有 localStorage:localStorage.clear()

注意事项和常见问题

localStorage 是**同源限制**的(协议+域名+端口完全一致才可访问),且容量一般为 5–10MB(因浏览器而异)。它不支持过期时间,也不能跨窗口实时同步变更(需配合 storage 事件监听)。

立即学习“Java免费学习笔记(深入)”;

监听其他标签页的 localStorage 变更:在 window 上监听 storage 事件,但注意:触发该事件的页面自身不会收到(只通知其他同源窗口) 不能存函数、undefined、Symbol 等非字符串/非可序列化值 敏感信息(如 token)不建议直接存在 localStorage,有 XSS 风险

简易封装一个安全的工具函数

可以自己封装一层,自动处理 JSON 序列化和错误捕获,让使用更稳:

const LS = {
set(key, value) {
try {
localStorage.setItem(key, JSON.stringify(value));
} catch (e) {
console.warn('localStorage set failed:', e);
}
},
get(key) {
try {
const str = localStorage.getItem(key);
return str ? JSON.parse(str) : null;
} catch (e) {
console.warn('localStorage get failed:', e);
return null;
}
}
};

用起来就更顺手了:LS.set('cart', [{id:1, qty:2}]); const cart = LS.get('cart');

基本上就这些。localStorage 不复杂但容易忽略细节,用对了能省不少事。

以上就是如何操作浏览器存储_javascript中localStorage怎么用?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1543007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 14:41:17
下一篇 2025年12月21日 14:41:26

相关推荐

  • javascript中的箭头函数是什么_它与普通函数有什么区别

    箭头函数是JavaScript中语法简洁且无this/arguments/super/new.target绑定的函数,适合简短回调;但不可用作构造函数、对象方法或需动态this的场景。 箭头函数是 JavaScript 中定义函数的一种简洁写法,用 => 符号代替 function 关键字。它…

    2025年12月21日
    000
  • 如何部署应用_javascript中有哪些部署选项?

    JavaScript应用部署无统一标准,需据应用类型(前端SPA、Node.js后端、全栈、Serverless)和目标环境(静态托管、云服务器、Serverless平台等)选择方案,关键在明确运行时依赖与交付形态。 部署 JavaScript 应用没有统一的“标准流程”,而是取决于应用类型(前端单…

    2025年12月21日
    000
  • 如何操作对象_javascript对象的常用方法有哪些?

    JavaScript对象操作核心方法包括创建(字面量、Object.create、Object.assign、class)、检查(hasOwnProperty、in、Object.hasOwn)、遍历(keys/values/entries/getOwnPropertyNames/getOwnPro…

    2025年12月21日
    000
  • 如何使用JavaScript操作DOM_它如何动态改变网页内容呢

    JavaScript操作DOM的核心是三步:找元素(如getElementById、querySelector)、改内容/样式/结构(如textContent、classList、appendChild)、绑定事件响应用户动作(如click、input),需注意DOM加载时机和性能优化。 JavaS…

    2025年12月21日
    000
  • javascript_机器学习在前端应用

    JavaScript通过TensorFlow.js、ML5.js等库支持前端机器学习,实现图像处理、自然语言理解与个性化推荐,具备隐私安全、低延迟与离线运行优势,适用于轻量级实时应用。 近年来,机器学习不再局限于后端或Python生态,前端也开始融入AI能力。JavaScript凭借其在浏览器和No…

    2025年12月21日
    000
  • javascript循环有哪些_for循环和while循环怎么选择

    JavaScript常用循环有5种:for适合次数明确或需索引的场景;while适合条件驱动、次数不确定的情况;do…while确保至少执行一次;for…in遍历对象可枚举属性(含原型链),需hasOwnProperty过滤;for…of遍历可迭代对象(如数组、M…

    2025年12月21日
    000
  • javascript_如何实现柯里化函数

    柯里化是将多参数函数转换为单参数函数序列的技术,通过闭包递归收集参数,支持参数复用、延迟计算与函数组合,可扩展实现占位符机制提升灵活性。 柯里化(Currying)是函数式编程中的一种技术,它将使用多个参数的函数转换成一系列使用单个参数的函数。每次调用只传递一个参数,返回一个新的函数,直到所有参数都…

    2025年12月21日
    000
  • javascript中的变量提升是什么_它如何影响代码的执行顺序

    JavaScript变量提升指声明被移至作用域顶部,但仅var声明初始化为undefined,let/const因TDZ在声明前访问报错,函数声明完全提升而表达式不提升。 变量提升(Hoisting)是 JavaScript 在编译阶段将 变量声明 和 函数声明 “移动”到其所在作用域顶部的行为。注…

    2025年12月21日
    000
  • 如何操作字符串_javascript字符串方法有哪些?

    JavaScript字符串不可变,常用方法分四类:获取信息(如length、charCodeAt)、查找提取(如indexOf、slice)、转换格式(如toLowerCase、trim)、分割替换(如split、replace)。 JavaScript 字符串是不可变的原始类型,所有字符串方法都不…

    2025年12月21日
    000
  • javascript如何实现桌面应用_Electron的工作原理是什么

    Electron 使 JavaScript 能开发桌面应用,其核心是主进程(Node.js,管理窗口和系统能力)与渲染进程(Chromium,负责 UI),通过 IPC 通信;需 main.js、index.html 和 package.json 三文件启动,但存在体积大、内存高、安全配置复杂等代价…

    2025年12月21日
    000
  • javascript的性能优化是什么_有哪些常见策略?

    JavaScript性能优化本质是提升执行速度、节省内存、增强响应性,核心在于减少主线程阻塞、降低重复开销、防止内存泄漏;具体包括缓存不变量、用for替代高阶函数、批量DOM操作、事件委托、及时清理引用、合理使用闭包、防抖节流、Web Worker及Promise.all并行请求。 JavaScri…

    2025年12月21日
    000
  • javascript如何实现组合组件_有哪些模式

    JavaScript组合组件核心是解耦复用,主流模式包括:1.容器/展示分离逻辑与UI;2.渲染属性模式通过函数prop提升灵活性;3.复合组件共享上下文实现隐式协作;4.自定义Hook封装可组合逻辑。 JavaScript 中实现组合组件,核心是让多个独立、可复用的组件像搭积木一样拼装成更复杂的功…

    2025年12月21日
    000
  • JavaScript的变量和数据类型有哪些?

    JavaScript变量无类型,类型属于值;基本数据类型共7种,不可变且按值传递,如string表示文本。 JavaScript 的变量本身没有类型,类型是绑定在值上的;变量只是指向某个值的“名字”。真正重要的是数据类型——它决定了你能对这个值做什么操作。 基本数据类型(Primitive Type…

    2025年12月21日
    000
  • javascript对象如何创建_有哪些属性描述符

    JavaScript创建对象有字面量、构造函数、Object.create()、class和工厂函数五种方式;属性描述符分数据型(value/writable)和存取型(get/set),含configurable、enumerable等通用字段,用于精细控制属性行为。 JavaScript 中创建…

    2025年12月21日
    000
  • javascript如何声明变量_let、const和var有什么区别

    JavaScript声明变量用let、const、var,核心区别在于:let/const为块级作用域,var为函数/全局作用域;var会变量提升并初始化为undefined,let/const存在暂时性死区;var可重复声明,let/const不可重复声明,const还必须初始化且不可重新赋值;推…

    2025年12月21日
    000
  • 如何用JavaScript实现本地存储_localStorage和sessionStorage有何区别?

    localStorage长期保存且同源标签页共享,sessionStorage仅当前会话有效且各标签页隔离;二者均只支持字符串存储,API相同,容量约5–10MB,不参与网络传输,禁存敏感信息。 localStorage 和 sessionStorage 都是浏览器提供的客户端存储机制,用来在用户本…

    2025年12月21日
    000
  • 什么是javascript模块_如何导入和导出模块?

    JavaScript模块是ES6起原生支持的代码组织方式,通过import/export实现作用域隔离与复用;需注意默认导出唯一、命名导出需大括号、路径规则及静态解析限制。 JavaScript 模块是将代码拆分为独立、可复用单元的方式,每个模块拥有自己的作用域,不会污染全局环境。从 ES6(ES2…

    2025年12月21日
    000
  • javascript模块是什么_如何导入导出

    JavaScript模块是封装变量、函数或类的独立代码单元,通过import/export机制交互,避免全局污染;默认严格模式,有独立作用域,仅执行一次;支持命名导出/导入、默认导出/导入、混合导入及整体导入;浏览器需type=”module”,Node.js需.mjs或&#…

    2025年12月21日
    000
  • javascript迭代器是什么_for…of循环如何工作?

    JavaScript迭代器是拥有next()方法的对象,返回{value, done};for…of通过Symbol.iterator协议遍历,要求对象提供返回有效迭代器的方法,普通对象默认不支持。 JavaScript 迭代器是一个具有 next() 方法的对象,每次调用都返回形如 {…

    2025年12月21日
    000
  • 怎样进行javascript对象合并_浅拷贝与深拷贝如何选择?

    JavaScript对象合并需据嵌套情况选浅拷贝或深拷贝:浅拷贝如Object.assign()、展开运算符仅复制第一层,引用类型共享内存;深拷贝如structuredClone()、JSON序列化或lodash.cloneDeep()递归复制全部层级,确保完全独立。 JavaScript对象合并常…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信