throw
抛出异常,但是不会中断全局代码的执行,当前函数的代码还是会被中断。
抛出的类型可以是String/Number/Boolean/Object
系统默认的Error类
throw new Error("错误信息!")
1 | try{ |
Storage
WebSotrage:localStorage、sessionStorage
localStorage:本地存储,提供一种永久性的存储方法,在关闭网页重新打开的时候,存储的内容依然保留
sessionStorage:会话存储,提供的是本次会话的存储,在关闭掉会话时,存储的内容会被清除
Storage常见方法和属性:
- length
- getItem
- setItem
- clear
- key(根据索引获取key)
- removeItem(删除某个键值对,参数为key)
一般我们在用到localStorage的时候会将封装一个工具函数,因为我们在存储对象的时候,setItem方法是会给我们转成字符串存取到Storage中,不便于我们观看,也不便于去获取,所以在封装函数的时候,判断是否是一个对象,然后转成字符串存取到Storage中,在通过getItem获取的时候在转成对象。
1 | // 转成字符串 |
正则表达式(Regular Expression)
简写:regex、regexp、RE
修饰符
i:ignore(忽略大小写)
g:global(全局搜索)
m:multiple(多行匹配)
方法:
test方法
1
console.log(/aaa/.test('aaaaa')) // true
exec方法
match方法
拿到匹配到的所有结果
1
2
3const re1 = /abc/ig
const message = 'abc Abc ABC'
console.log(message.match(re1)) // ['abc', 'Abc', 'ABC']matchAll方法
给定的正则必须加g
返回的是一个迭代器
需要使用next方法获取对应的值
1
2
3
4
5
6
7const re1 = /abc/ig
const message = 'abc Abc ABC'
const result = message.matchAll(re1)
console.log(result.next())
console.log(result.next())
console.log(result.next())
console.log(result.next())replace/replaceAll方法,替换,全局替换
split:通过正则来切割字符串
search:搜索结果(得到的是索引,否则为-1)
正则规则
\d:表示0-9的一个数字
\s:空格符号:包括空格,制表符\t,换行符\n和其他少数稀有字符\v、\f和\r
\w:拉丁字母、数字、下划线_
**.(点)**:是一种特殊字符,它匹配除换行符之外的所有字符
\D:非数字
\S:非空格字符
\W:非单字字符
锚点
字符串可以匹配以什么开头(startsWith)/结尾(endsWith)的方法。
^:开头/^/
**$**:结尾/$/
/^\d{3,8}$/ig
:3-8位的数字。
\b:词边界
**\*:转义符号:一般需要转义的符号有:$、\、^、$、.(点)、|、?、、+、(、)、
? :表示0或1个。
**[123456789]/[1-9]**:1-9其中的一个。
在范围前面加^表示排除某些范围。
量词
/a{5}/ig:5个a
/a{3,5}/ig:3-5个a
**+**:代表一个或多个 {1,}
?:代表0个或一个 {0,1}
*****:代表0个或多个 {0,}
贪婪模式和惰性模式
贪婪模式
它会一直匹配到message字符串结尾将活着的》、《都当成了+所代表的内容了
1
2
3
4const message = 'hello world,《活着》、《云边有个小卖部》'
const mesRe = /《.+》/ig
const result = message.match(mesRe)
console.log(result) // ["《活着》、《云边有个小卖部》"]惰性模式
通常用惰性模式的比较多。
1
2
3
4const message = 'hello world,《活着》、《云边有个小卖部》'
const mesRe = /《.+?》/ig
const result = message.match(mesRe)
console.log(result) // ['《活着》', '《云边有个小卖部》']