https://www.bilibili.com/video/BV1vB4y1q766
在整个存储过程中:
- JSON.stringify(序列化)负责把数组或JSON转成字符串
- JSON.parse(反序列化)把字符串转成数组或JSON
- localStorage负责保存读取数据
为什么要转来转去?
因为localStorage只能存取字符串
//创建一个保存函数
var save = function (arr) {
localStorage.my=JSON.stringify(arr)
}
//读取函数
var read=function(){
return JSON.parse(localStorage.my)//把本地存储的my转成数组
}
测试数据存储<input type="text" id="inp">
<button id="btsave">保存</button>
<button id="btread">读取</button>
<button id="btclear">清空数据</button>
<script>
//获取元素
const einp = document.querySelector('#inp');
const ebtsave = document.querySelector('#btsave');
const ebtread = document.querySelector('#btread');
const ebtclear = document.querySelector('#btclear');
//获取按钮点击事件
ebtsave.onclick = function () {
//开始我们的数组保存吧
let myarr=[];
let myjson={};
if(localStorage.my!=null){//如果my不是空的,那就把数组传给myarr
myarr=read()
}
//先报输入框中的内容传给json中的name,然后把json加入到数组中
myjson.name=einp.value;
myarr.push(myjson);/*把输入框的数据存储到数组中*/
save(myarr);//保存
//每次保存清空输入框,并把焦点回到输入框
einp.value='';
einp.focus();
};
ebtread.onclick = function () {
console.log(localStorage.my)
//console.log(read())
};
ebtclear.onclick = function () {
//清除保存的数据
localStorage.clear()
};
//创建一个保存函数
var save = function (arr) {
localStorage.my=JSON.stringify(arr);//把数组变成字符串存入my中
}
//读取函数
var read=function(){
return JSON.parse(localStorage.my)//把本地存储的my转成数组
}
</script>