location对象
location.href 获取完整的url路径,对其赋值时用于页面跳转
const reload = document.querySelector('.reload')
console.log(reload)
reload.addEventListener('click', function () {
//点击按钮跳转地址,location.href=''
location.href = 'https://www.csdn.net'
})
Location.search获取到地址路径?后面的参数,没有返回空字符串,要在控制台使用
location.hash获取地址路径#后面的参数
location.reload()f5刷新,括号里传入true,为强制ctrl+f5刷新
本地储存(⚠️)
可以把数据存储在浏览器中
容量较大,sessionStorage和localStorage约 5M 左右
localStorage
可以永久的将数据存储在浏览器中,除非主动删除
let data = '一元'
//储存数据
localStorage.setItem('name', data)
//获取数据
let name = localStorage.getItem('name')
//控制台打印
console.log(name)
//修改数据
let data2 = '二元'
localStorage.setItem('name', data2)
//新增数据
let data1 = '三元'
localStorage.setItem('name1', data1)
//删除数据
// localStorage.removeItem('name')
复杂数据类型⚠️
要使用 JSON.stringify(复杂数据类型) 来转换为json字符串才能储存在本地
取出的时候也需要使用 JSON.parse() 进行转换为复杂数据类型
//复杂数据类型
let obj = {
name: '美美',
age: 18,
love: '干饭',
}
//使用josn方法变为josn字符串储存在本地
localStorage.setItem('uname1',JSON.stringify(obj))
//使用josn将josn字符串转换为obj使用
const data1 = JSON.parse(localStorage.getItem('uname1'))
console.log(data1)
map方法⚠️
//map方法数组循环
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
//arr.map(function (数组中每个值, 下标){})
const newarr = arr.map(function (item, index) {
console.log(item) //每个值
console.log(index) //每个下标
return (item += 5) //是一个新数组newarr
})
console.log(newarr)
join数组方法⚠️
把数组转换为字符串
let arr = ['red', 'green', 'blue']
console.log(arr.join('$'))//red$green$blue
console.log(arr.join('&'))//red&green&blue
正则表达式
正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式
let str = '我是下令,小明是笨蛋'
//定义规则
const reg = /小明/
//test()方法,只有正则表达式可以使用,如果找到返回true,没有找到返回false
console.log(reg.test(str))
//exec()方法返回一个数组
console.log(reg.exec(str))
元字符
边界符
^ | 表示匹配行首的文本(以谁开始) |
---|---|
$ | 表示匹配行尾的文本(以谁结束) |
// console.log(/哈/.test('哈'))
// ^以谁开头
console.log(/^哈/.test('哈'))//true
console.log(/^前端/.test('前端很有意思'))//true
console.log(/^前端/.test('很有意思前端'))//false
// $以谁结尾
console.log(/^哈$/.test('哈')) //^和$一起存在的时候只能有一个字符
console.log(/前端$/.test('很有意思前端')) //true
量词
量词 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
//* 大于等于0次
console.log(/^哈*$/.test('')) //true
console.log(/^哈*$/.test('哈哈哈')) //true
console.log(/^哈*$/.test('啊哈哈')) //false
//+大于等于一次
console.log(/^哈+$/.test('啊哈哈')) //false
console.log(/^哈+$/.test('')) //false
console.log(/^哈+$/.test('哈哈哈哈哈')) //true、
//?重复0次或者一次
console.log(/^哈?$/.test('哈')) //true
console.log(/^哈?$/.test('哈哈哈哈哈哈')) //false
//{n} 次数n次
console.log(/^哈{2}$/.test('哈哈哈哈哈哈')) //false
console.log(/^哈{4}$/.test('哈哈哈哈')) //false
//{n,}大于等于n
console.log(/^哈{4,}$/.test('哈哈哈哈')) //true
//{n,m} 大于等于n并且小于等于m 逗号两边不要加空格
console.log(/^哈{4,5}$/.test('哈哈哈哈')) //true
字符类
//[] [a,b,c,d]任意一个
console.log(/^[a,b,c,d]$/.test('a')) //true
console.log(/^[a,b,c,d]$/.test('bc')) //false
//连词 [a-z]
console.log(/^[a-z]$/.test('a')) //true
console.log(/^[a-zA-Z]$/.test('aA')) //false
//[] ^取反符
console.log(/^[^a-z]$/.test('')) //false
console.log(/^[^a-z]$/.test(' ')) //true
字符类预定义
预定类 | 说明 |
---|---|
\d | 匹配0-9之间的任意数字,相当于[0-9] |
\D | 匹配所有0-9以外的字符,相当于[^0-9] |
\w | 匹配任意的字母,数字和下划线,相当于[A-Za-z0-9] |
\W | 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9] |
\s | 匹配空格(包括换行符,制表符,空格符等),相当于[\t\r\n\v\f] |
\S | 匹配非空格的字符,相当于[^\t\r\n\v\f] |
console.log(/^\d$/.test('a')) //false
console.log(/^\d$/.test('0')) //true
console.log(/^\D$/.test('a')) //true
console.log(/^\w$/.test('a')) //true
console.log(/^\w$/.test('_')) //true
console.log(/^\W$/.test('a')) //false
正则修饰符
-
i 是单词 ignore 的缩写,正则匹配时字母不区分大小写
-
g 是单词 global 的缩写,匹配所有满足正则表达式的结果
let str = 'fsajyffsajuhkFFJKABFHAH'
str = str.replace(/f/gi, '*')
//*sajy**sajuhk**JKAB*HAH
console.log(str)