本地存储
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。
1、数据存储在用户浏览器中 2、设置、读取方便、甚至页面刷新不丢失数据 3、容量较大,sessionStorage和localStorage约 5M 左右
localStorage
1、生命周期永久生效,除非手动删除 否则关闭页面也会存在
2、可以多窗口(页面)共享(同一浏览器可以共享)
3、以键值对的形式存储使用
存储数据:
localStorage.setItem(key, value)
获取数据:
localStorage.getItem(key)
删除数据:
localStorage.removeItem(key)
localStorage基本使用 --存取数据:
<body>
<script>
//存储日期
// localStorage.setItem('自定义',值-必须是字符串的格式)
//存储日期
localStorage.setItem('date','二零二二年四月十五日 23:40:58')
//获取它
const date = localStorage.getItem('date');
console.log(date);
</script>
</body>
本地存储的拓展
<body>
<script>
//本地存储 存储数据类型 不管你传入什么类型 最终都会被转换成字符串类型
//数组和对象 合适管理 比较复杂的数据
const obj = {
name:'路飞',
height:100,
weught:200};
//把对象转成字符串
const objs = JSON.stringify(obj);
//把字符串 --》本地存储
localStorage.setItem('obj',objs);
//把本地存储的数据重新读取出来
const newObjs = localStorage.getItem('obj');
// console.log(newObjs);
//把字符串解析成原来的对象
const newObj = JSON.parse(newObjs);
console.log(newObj);
/*
1.本地存储无法存储 复杂类型的数据
2.复杂类型的数据 通过JSON对象 字符串 相互之间的转换*/
</script>
</body>
小总结:
- 存储复杂数据类型存储
- 本地只能存储字符串,无法存储复杂数据类型.需要将复杂数据类型转换成JSON字符串,在存储到本地
- JSON.stringify(复杂数据类型)
- 将复杂数据转换成JSON字符串 存储 本地存储中
- JSON.parse(JSON字符串)
- 将JSON字符串转换成对象 取出 时候使用
本地存取 四个api
- 存 localStorage.setItem('abc',1223)
- 取 localStorage.getItem(key)
- 删除一个 localStorage.removeItem(key)
- 清空 localStorage.clear()
拓展: 自定义属性
固有属性: 标签天生自带的属性 比如class id title等, 可以直接使用点语法操作 自定义属性: 由程序员自己添加的属性,在DOM对象中找不到, 无法使用点语法操作,必须使用专门的API getAttribute('属性名') // 获取自定义属性 setAttribute('属性名', '属性值') // 设置自定义属性 removeAttribute('属性名') // 删除自定义属性
data-自定义属性: 传统的自定义属性没有专门的定义规则,开发者随意定值,不够规范,所以在html5中推出来了专门的data-自定义属性 在标签上一律以data-开头 在DOM对象上一律以dataset对象方式获取
标签属性的补充说明
小结
标签 的属性 有两种分为
1.固有属性 比如 id href src 点语法方式获取和设置 方便
2.自定义属性
-
随机自己随意命名
< a abc ='123'>
获取(getAttribute) 设置 setAttribute(key,value) 删除 removeAttribute(key)
-
h5 建议 data- xxx
获取(a.dataset.abc) 设置(a.dataset.abc=456)
-
-
最强大是 (getAttribute) setAttribute removeAttribute
上述的这个方式,可以获取到任意的属性(固有属性和h5建议的自定义属性)
绑定事件和取消
// 绑定函数的时候用的匿名函数 没办法取消 不知道函数名称
addEventListener 可以绑定多个同名事件
removeEventListener 可以取消对应的事件类型和事件处理函数
无法取消 addEventListener 事件 对应的匿名函数
字符串方法
在实际开发过程中 有很多需求 需要针对字符串做处理 今天先来一些字符串转大小写方法
字符串和数组很相似
能不能把字符串 转成数组?
、、转大写 toUpperCase()
// 转小写 toLowerCase()
、、转数组 str.split('') 按照什么分割你的字符串变成数组
数组转成字符串 常用
数组与数组之间连接
concat方法