目录
17.什么是window对象? 什么是document对象?
18.如何编写高性能的JavaScript,(前端如何优化)
19.setTimeout 和 setInterval 区别
17.什么是window对象? 什么是document对象?
window对象代表浏览器中打开的一个窗口。
document对象代表整个html文档。
小谷告诉你:实际上,document对象是window对象的一个属性。
18.如何编写高性能的JavaScript,(前端如何优化)
- 将js脚本放在页面底部,加快渲染页面;
- 将js脚本成组打包,减少请求;
- 使用非阻塞方式下载js脚本;
- 尽量使用局部变量来保存全局变量;
- 尽量减少使用闭包;
- 使用window对象属性方法时省略window;
- 尽量减少对象成员嵌套;
- 缓存DOM节点的访问;
- 通过避免使用eval和function()构造器;
- 给setTimeout()和setInterval()传递函数而不是字符作为参数;
- 尽量使用直接量创建对象和数组;
- 最小化重绘(repaint)和回流(reflow);
19.setTimeout 和 setInterval 区别
- setTimeout(fn,t),超时定时器,超过时间t,就执行fn。
- setInterval(fn,t),间歇定时器,调用周期t,执行fn。
二者调用后,均返回一个数值ID,此ID是计划执行代码的唯一标识符,可以通过它来取消尚未执行的调用。
clearTimeout(id)和clearInterval(id)。
常问的点,前者是在一定时间过后将函数添加至执行队列,执行时间=延迟时间+之前函数代码执行时间+执行函数时间。
后者是不管前一次是否执行完毕,每隔一定时间重复执行,用于精准执行互相没有影响的重复操作。