文章目录
BOM浏览器对象模型:
- window对象是一个全局对象,也可以说是JavaScript中的顶级对象
- 像document、alert()、console.log()这些都是window的属性,基本BOM的属性和方法都是window的。
- 所有通过var定义在全局作用域中的变量、函数都会变成window对象的属性和方法
- window对象下的属性和方法调用的时候可以省略window
线程机制:
cpu的基本调度单位,是程序执行的一个完整流程
js是单线程的
js代码:同步:1、会阻塞后续代码的执行,同步任务都在主线程上执行,形成一个执行栈。2、没有回调
异步:1、不会阻塞。2、有回调,比如click事件,定时器等。异步任务添加到任务队列中
js执行机制 :
1. 先执行执行栈中的同步任务。
2. 异步任务放入任务队列中。
3. 一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状
态,进入执行栈,开始执行。之后通过轮询方式询问是否有可执行的异步任务。
由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环。
本地存储
- 页面刷新数据不丢失
- 都是字符串存入,无法存复杂数据类型
分类:localStorage sessionStorage
localStorage:
- 作用: 可以将数据永久存储在本地(用户的电脑), 除非手动删除,否则关闭页面也会存在
- 特性:
- 可以多窗口(页面)共享(同一浏览器可以共享)
- 以键值对的形式存储使用
- 语法: 浏览器application中可查看本地仓库
存储数据:
localStorage.setItem(key, value)
localStorage.setItem('love','爱')
获取数据:
localStorage.getItem(key)
删除数据:
localStorage.removeItem(key)
sessionStorage:
- 特性:
- 生命周期为关闭浏览器窗口
- 在同一个窗口(页面)下数据可以共享
- 以键值对的形式存储使用
- 用法跟localStorage 基本相同
存储复杂数据类型: 转为json串存储
const obj = {
uname: ' 小红 ',
age: 14,
gender: '女'
}
localStorage.setItem('obj', JSON.stringify(obj))
console.log(JSON.parse(localStorage.getItem('obj')));
正则表达式
用于匹配字符串中字符组合的模式
语法:
字面量创建:
定义正则表达式语法: ( / / 是正则表达式字面量 )
const 变量名=/表达式/
**方法一:** test() 方法 用来查看正则表达式与指定的字符串是否匹配
regObj.test(被检测的字符串) 返回true/false
const str = '我们在学习前端,希望学习前端能高薪毕业'
const reg = /前端/
console.log(reg.test(str));
方法二: exec() 方法 在一个指定字符串中执行一个搜索匹配
regObj.exec(被检测字符串) 返回数组
console.log(reg.exec(str));
构造函数创建:
const 变量名= new RegExp(表达式 , 修饰符)
元字符:
分类:
-
边界符(表示位置,开头和结尾,必须用什么开头,用什么结尾)
^ 表示匹配行首的文本(以谁开始) $ 表示匹配行尾的文本(以谁结束) 如果 ^ 和 $ 在一起,表示必须是精确匹配。
-
量词 (表示重复次数)
* 重复0次或更多次 + 重复1次或更多次 ? 重复0次或1次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n次到m次
-
字符类 (比如 \d 表示 0~9)
[ ] 匹配字符集合,主要包含[ ]中的任意一个字符,返回true [0-9] 匹配任意一个数字 [^ ] 匹配除了xx以外的字符串 [^a-z] 匹配除了小写字母以外的字符 . 匹配除 \n 之外的任何字符 | 或者
-
修饰符:
语法:/表达式/修饰符 i : 正则匹配时字母不区分大小写 g:匹配所有满足正则表达式的结果
-
替换replace
语法: 字符串.replace(/正则表达式/ , ‘替换的文本’ )
const str = 'java是一门编程语言,学完java工资很高' console.log( str.replace(/java/ig,'前端') );
案例:
3到9位的英文字母大小写或数字组成
/^[a-zA-Z0-9]{3,9}$/