BOM
BOM是浏览器对象模型
- window对象是一个全局对象,也就是JavaScript中的顶级对象
- 所有通过var定义的全局作用域中的变量,函数都会变成window对象的属性和方法
- window对象下的属性和方法调用的时候可以省略window
延时函数
let a = setTimeout(回调函数,等待的毫秒数)
setTimeout仅仅只执行一次
清除延时函数:
clearTimeout(a)
JS执行机制
JavaScript的一大特点就是单线程,意味着所有任务需要排队,前一个任务结束后才会执行下一个任务、这样导致的问题是,如果js的执行时间过长,会造成页面渲染不连贯,导致渲染加载阻塞的感觉。
为了解决这个问题,HTML5提出了Web Worker准则,允许JavaScript脚本创建多个线程,于是出现了同步和异步。
js的异步是通过回调函数实现的。
执行机制:
- 先执行执行栈中的同步任务
- 异步任务放入任务队列中
- 一旦执行栈中的所有同步任务执行完毕,系统会按次序读取任务队列的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。
由于主线程不断的获取任务,执行任务,这种机制被称为事件循环。