JS 本地存储

本地存储

因本地存储只接收字符串,所以存储的时候数组,对象等通常都是转化为字符串,取出的时候在转换为原来的样式

JSON.stringify() JSON.parse()

localStorage

localStorage:本地永久存储,除非手动删除

localStorage 存储变量

localStorage.setItem('name','张三');

localStorage.age=20;

localStorage 存储数组

var arr = [2,3,45];
localStorage.arr = JSON.stringify(arr);
console.log(JSON.parse(localStorage.arr));

localStorage 存储对象

var zs={'name':'张三','age':20}
localStorage.zs=JSON.stringify(zs);
console.log(JSON.parse(localStorage.zs));

localStorage 存储对象数组

var ary=[
	{'name':'张三','age':20},
	{'name':'李四','age':30}
]
localStorage.ary=JSON.stringify(ary);
console.log(JSON.parse(localStorage.arys));

取数据

//根据key获取value
console.log(localStorage.name);
console.log(JSON.parse(localStorage.getItem("arr")));
		  
//根据下标获取对应的key名
console.log(localStorage.key(3));
//根据key删除
localStorage.removeItem("age");
		  
//清空
localStorage.clear();

效果展示
image-20220824203058151

sessionStorage

localStorage:永久存储,除非手动删除
sessionStorage:会话存储,关闭页面就会失效

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		用户名:<input type="text">
		<button>登录</button>
		<script>
			/* 
			localStorage:永久存储,除非手动删除
			sessionStorage:会话存储,关闭页面就会失效 
			*/
		   
		   // sessionStorage.name="张三";
		   localStorage.name="李四";
		   // localStorage.age=20;
		   
		   var _button=document.querySelector("button")
		   var _input=document.querySelector("input")
		   _button.onclick=function(){
			   location.href="./index.html";
			   // 将用户名存储到回话存储
			   sessionStorage.name=_input.value;
		   }
		</script>
	</body>
</html>

效果图:

image-20220824204001127

image-20220824204034585

cookie

ocalStorage:永久存储,除非手动删除
sessionStorage:会话存储,关闭页面就会失效
cookie:可以设置过期时间,如果不设置关闭浏览器就会失效。必须在服务器模式下执行。

代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			/*
			localStorage:永久存储,除非手动删除
			sessionStorage:会话存储,关闭页面就会失效 
			cookie:可以设置过期时间,如果不设置关闭浏览器就会失效。必须在服务器模式下执行。
			*/
		   //cookie存储数据
		   // document.cookie="name=张三;";
		   // document.cookie="age=20;";
		   /* 过期时间设置
		      max-age:秒 
			  expires:格林尼治时间
			  toUTCString()
			*/ 
		   document.cookie="pwd=123456;max-age=10"
		   document.cookie="height=183;max-age=60"
		   //10秒以后过期
		   var times=new Date(new Date().getTime()+10*1000);
		   times=times.toUTCString();
		   // document.cookie="hobby=购物;expires="+times
		   document.cookie=`hobby=购物;expires=${times}`
		   
		   //cookie删除
		    document.cookie="pwd=;max-age=0" 
		    document.cookie="hobby=;expires="+new Date().toUTCString();
			
			//cookie获取
			console.log(document.cookie);
			
		</script>
	</body>
</html>

效果图:

image-20220824204511408

cookie封装

因为cookie取数据较为麻烦,所以人们通常封装cookie,为后续取数据节约时间

代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			//设置cookie
			function setCookie(key,value,exdays){
				var times=new Date().getTime()+exdays*24*60*60*1000;
				times=new Date(times).toUTCString();
				document.cookie=`${key}=${value};expires=${times}`
			}
			setCookie("name","张三",1)
			setCookie("age",20,1)
			
			//删除
			function delCookie(key){
				document.cookie=`${key}=;expires=${new Date().toUTCString()}`
			}
			// delCookie("age");
			
			//获取
			function  getCookie(key){
				// `name=张三;age=20;max-age=20`
				var str=document.cookie;
				//按照分号拆分为数组
				//["name=张三","age=20","max-age=20"]
				var arr=str.split(";");
				for (var item of arr) {
					var ary=item.split("="); //["name","张三"]
					console.log(ary[0]);
					if(ary[0].trim()==key){
						return ary[1];
					}
				}
			}
			console.log(getCookie("name"));
			console.log(getCookie("age"));
		</script>
	</body>
</html>

效果图:

image-20220824204816635

image-20220824204909618

总结

​ cookie取数据较为麻烦,但现在用的不多。一是比较繁琐,二是不是很安全。但是要知道其原理,以及如何使用它。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值