前端知识点---本地存储(javascript)

localStorage 是浏览器提供的一个 本地存储 API,可以在用户的浏览器中存储数据,数据不会随页面刷新而丢失。

1. 基本用法

(1) 存储数据(setItem)


localStorage.setItem("username", "zhangsan");

存储 “username”: “zhangsan” 到本地。

(2) 读取数据(getItem)


let user = localStorage.getItem("username");
console.log(user); // "zhangsan"

获取 localStorage 里 “username” 的值。

(3) 删除数据
删除单个数据(removeItem)


localStorage.removeItem("username");

清空所有数据(clear)


localStorage.clear();
  1. 存储对象
    localStorage 只能存字符串,要存对象的话,需要用 JSON.stringify() 转换:

<!-- 存储对象可以实现多条数据  -->
 <script>
    const obj={
        name:'张三', 
        age:18, 
        gender:'男'
    }
    localStorage.setItem('obj', obj)//前面的obj是键, 后面是值 不一样 
    console.log(localStorage.getItem('obj'));
    // 因为只能存字符串 所以结果是[object Object]
    // 解决:需要将复杂数据类型转换成ISON字符串,在存储到本地语法:JSON.stringify(复杂数据类型)
    localStorage.setItem('obj', JSON.stringify(obj))
     console.log(localStorage.getItem('obj'));//但是这是字符串形式

在这里插入图片描述
在这里插入图片描述

读取时需要 JSON.parse() 解析回来:


 console.log(JSON.parse(localStorage.getItem('obj') ));

在这里插入图片描述

3. 实际案例:存储商品数据


let products = [
    { id: 1, title: "商品1", price: 100 },
    { id: 2, title: "商品2", price: 200 },
];

// 存储商品列表
localStorage.setItem("products", JSON.stringify(products));

// 读取商品列表
let savedProducts = JSON.parse(localStorage.getItem("products"));
console.log(savedProducts);

4. sessionStorage vs localStorage

特性localStoragesessionStorage
存储时间永久存储,页面关闭后仍然存在仅在 当前标签页 有效,关闭标签页数据就没了
存储大小约 5MB约 5MB
作用域同源的所有页面都能访问只在当前页面的 标签页 内有效

简单来说:

localStorage 用于长期存储数据,例如用户设置、购物车数据等。

sessionStorage 用于短期存储,例如表单数据、临时会话信息等。

5. localStorage 监听(storage 事件)

当 同一浏览器的不同页面 修改 localStorage 时,其他页面可以监听变化:


window.addEventListener("storage", (event) => {
    console.log("localStorage 变化:", event);
});

⚠ 同一页面不会触发 storage 事件,只有其他页面修改 localStorage 才会触发。

6. 适用场景

记住用户设置(如夜间模式)

存储用户的购物车数据

本地缓存 API 请求结果

跨页面共享数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值