Javascript——Day10
- 01.BOM和延迟函数setTimeout
- 02.事件循环eventloop
- 03.location对象
- 04.navigator对象和histroy对象
- 05.本地存储localstorage
- 06.本地存储处理复杂数据类型
- 07.数组map和join方法
01.BOM和延迟函数setTimeout
学习目录:
window对象学习目录:
BOM包含着DOM。
写document时,window是最大的,一般省略不写
(声明的函数其实一般都是挂载在window上)
以前的var都是挂载在window下的,现在的let和const都是挂载在自己的作用域下的
接下来,我们来讲定时器—延时函数。
接下来的定时器,它更多的算是一种延时函数,
只执行一次。(先前是一直执行)
即之前是多久执行一次,现在是多久之后执行。
(具体案例:轮播图与几秒钟关闭广告)
如:
一般情况下,该定时器不用清除。
但是后面如果用到递归函数的时候,自己调自己容易调晕,所以需要对定时器进行清除。
返回的还是id值
注意事项:
对比:
接下来,我们用个案例应用一下:
02.事件循环eventloop
接下来我们来了解一下
JS的执行机制
即了解JS是怎么执行的。
(1)从上往下执行
(2)有JS解析器
(浏览器有两个引擎,渲染引擎和解析JS的引擎)
来看两道面试题
答案都是132
原因:
解决阻塞问题:
实际上,JS没有队列和栈,只是借助这两者来帮助我们更好的理解其运行机制。
即:执行完栈的任务,再去任务队列里看看有没有要的执行的任务,再回到栈,如此反复,便是循环。
同步任务放入同步执行栈内,异步任务提交给浏览器,浏览器执行完交至(任务)队列,然后同步任务执行完会到队列里取异步任务。
也可以是1243。
03.location对象
location对象:
(1)href
案例:5秒钟之后跳转页面
要用setInterval,因为页面的数字在跳动
(num=5就可以,因为它是在定时器里,1秒后才执行)
(2)search
点击提交后:
(3)hash
像网易云音乐这种页面叫做单应用页面,它不需要刷新即可渲染出页面。
点击之后url跟着变化。
除了以上3个属性之外,还有一个方法roload
(类似刷新按钮的作用):
总结:
04.navigator对象和histroy对象
navigator对象
PC端不跳转。
拓展:立即执行函数的两种写法
history对象:
类似前进后退按钮
实操:
history对象比较少用:
05.本地存储localstorage
前面我们结束了window对象的讲解,接下来,我们来讲解
本地存储
(1)本地存储介绍:
(2)本地存储分类:
打开浏览器另外一个页面也是有的
(前面的url要一样,因为还没有学到跨域)
改的话就是,增(有这个键就改,没有就增)
对于缓存,localStorage关闭浏览器不会消失,而下面介绍的sessionStorage会消失。
总结:
(注意键要加引号,数字是会被转为字符串的)
06.本地存储处理复杂数据类型
存取对象/数组。
解决方案:
存储:
取出:
07.数组map和join方法
字符串拼接:
map方法,可以返回新的数组
join方法:数组中所有元素转换为一个字符串