本地存储
一、本地存储特性
1、生命周期永久生效,除非手动删除 否则关闭页面也会存在 2、可以多窗口(页面)共享(同一浏览器可以共享) 3、以键值对的形式存储使用 存储数据:
localStorage.setItem(key, value)
获取数据:
localStorage.getItem(key)
删除数据:
localStorage.removeItem(key)
二、存储复杂数据类型存储:
本地只能存储字符串,无法存储复杂数据类型.需要将复杂数据类型转换成JSON字符串,在存储到本地 1.JSON.stringify(复杂数据类型) 将复杂数据转换成JSON字符串 存储 本地存储中 2.JSON.parse(JSON字符串) 将JSON字符串转换成对象 取出 时候使用
三、数组和对象管理比较复杂的数据演示:
<script>
// 1.正常定义对象
const obj={
name:'靓仔',
height:100,
weight:200,
}
// 2.有好用的代码,可以帮助我们快速把一个对象转成字符串
const objStr=JSON.stringify(obj)
// 3.本地储存 可以存储字符串类型的数据
localStorage.setItem('obj',objStr)
// 4.把本地存储的数据重新读取出来
const newObjStr=localStorage.getItem('obj')
console.log(newObjStr);
// 5.重新把字符串解析成原来的对象
const newObj=JSON.parse(newObjStr)
console.log(newObj);
</script>
四、自定义属性
1.标签天生自带的属性 比如class id title等, 可以直接使用点语法操作
<body>
<a id="nav" href="http://www.baidu.com">百度</a>
<script>
// 获取dom元素固有属性 通过点语法来获取
const a=document.querySelector('a')
// 获取固有属性
console.log(a.href);
console.log(a.id);
//直接修改
a.href='http://www.qq.com';
a.id='abc'
</script>
</body>
2.自定义属性: ①getAttribute('属性名') // 获取自定义属性
<body>
<a href="http://baidu.com"hello='ok'>百度</a>
<script>
const a=document.querySelector('a')
console.log(a.getAttribute('hello')); //ok
</script>
</body>
②setAttribute('属性名', '属性值') // 设置自定义属性
<body>
<a href="http://baidu.com"hello='ok'>百度</a>
<script>
const a=document.querySelector('a')
a.setAttribute('hello','thanks')
</script>
</body>
③removeAttribute('属性名') // 删除自定义属性
<body>
<a href="http://baidu.com"hello='ok'>百度</a>
<script>
const a=document.querySelector('a')
a.removeAttribute('hello')
</script>
</body>
3.本地存储的技术 sessionStorage
<script>
/*
本地存储的技术 sessionStorage 会话(打开页面到关闭页面之间过程 一次会话 ajax node)存储
登录的时候
它的用法和 localStorage 用法一样
区别只有一个
sessionStorage 关闭页面后 数据就丢失
localStorage 除非是用户主动删除 否则一直存在 直到天荒地老
*/
存数据
// sessionStorage.setItem("ss",123);
取数据
// console.log(sessionStorage.getItem("ss"));
删除一个
// sessionStorage.removeItem("ss")
// 清空
sessionStorage.clear();
</script>
4..h5建议的自定义属性:
<body>
<a data-index="0" href="http://baidu.com">百度</a>
<script>
const a=document.querySelector('a')
//
// 属性:data-xxx
// 获取:a.dataset.index=3
console.log(a.dataset.index);
// 设置index=2
a.dataset.index=2
</script>
</body>
字符串方法演示
<script>
// 转大写
let big='hello'
console.log(big.toLocaleUpperCase());
// 转小写
let little='HELLO'
console.log(little.toLowerCase());
// 字符串转数组
const str='abcdefg'
// split('')空字符分割
console.log(str.split(''));
const str2='a-b-c-d-e-f-g'
console.log(str2.split('-'));
</script>
数组方法演示
<script>
// 数组转字符串
const arr=['a','b','c','d']
console.log(arr.join('')); //加入
console.log(arr.join('-'));//a-b-c-d
// 链接 数组和数组之间的链接
const arr1=['1','2','3']
const arr2=['a','b','c']
// 将两个数字合并成一个数组
console.log(arr1.concat(arr2));
// 字符串 concat也表示合并
const str1='123'
const str2='abc'
console.log(str1.concat(str2));//少用 123abc
console.log(str1+str2);//123abcs
</script>
正则表达式
一.正则表达式是用于匹配字符串中字符组合的模式
二.作用:
1.表单验证(匹配) 2.过滤敏感词(替换) 3.字符串中提取我们想要的部分(提取)
三.定义正则表达式语法:
let 变量名=/表达式/
如:let reg=/前端/
/ /是正则表达式字面量
四.判断是否有符合规则的字符串:
test() 方法 用来查看正则表达式与指定的字符串是否匹配
<script>
/*
正则的作用 寻找字符串 检测 这个字符串这有没有我想要的文字
*/
const str = `我是一只小毛驴`;
// 判断一下这个字符串中有没有 梦想 两个字
// 定义规则
const reg = /小毛驴/;
// 规则和字符串 匹配 test
console.log(reg.test(str)); // 有 返回true 没有返回false
</script>
五.元字符
1.边界符(表示位置,开头和结尾,必须用什么开头,用什么结尾)
①正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符
②正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符
2.量词(修饰符) (表示重复次数)
量词用来 设定某个模式出现的次数
3.字符类(占位符) (比如 \d 表示 0~9)
①[ ] 匹配字符集合 后面的字符串只要包含 abc 中任意一个字符,都返回 true
②[ ] 里面加上 - 连字符
使用连字符 - 表示一个范围
<script>
console.log(/^[a-z]$/.test('c'));//true
</script>
比如: [a-z] 表示 a 到 z 26个英文字母都可以 [a-zA-Z] 表示大小写都可以 [0-9] 表示 0~9 的数字都可以
③[ ] 里面加上 ^ 取反符号
比如:
[^a-z] 匹配除了小写字母以外的字符
注意要写到中括号里面
④预定义:指的是某些常见模式的简写方式。
六、替换字符串
<script>
let str='足球好看嘛'
//'字符串',replace('待替换文字','替换成什么')//会返回一个新的字符串
let newStr=str.replace('足球','篮球')
console.log(newStr);//'篮球好看吗'
</script>
七、正则替换
<script>
let str='成绩 100'
//将数字代替成*
//str.replace('支持正则的方式来匹配文字','要替换成什么')
//+找到一个或者多个数字,然后只替换成一个
str=str.replace(/\d/g,'*')//'成绩 ***'
//g属于正则中的 修饰符 表示 全局global 看到一个替换一个
str=str.replace(/\d+/,'*')//'成绩 *00'
console.log(str);
let English='拜拜 bey'
// 将英文字母替换成*
English=English.replace(/[a-zA-Z]/g,'*')//'拜拜 ***'
// i(ignore)表示忽略大小写
English=English.replace(/[a-z]/gi,'*')//'拜拜 ***'
console.log(English);
</script>