常见前端面试题(三)

更多内容关注微信公众号“前端阿章”~

一、防抖函数和节流函数的区别?

  • 防抖函数记录最后一次执行动作的时间。假设防抖间隔是n秒,则在最后一次执行动作n秒之后可以重新触发事件。

  • 节流函数记录第一次执行动作的时间。假设节流间隔是n秒,则在第一次执行动作n秒之后可以重新触发事件。

二、数组去重的方法?

  • Set结构。

  • 新建一个空数组,遍历旧数组,若新数组中没有该元素,则追加至新数组中。

  • filter + indexOf

图片

三、什么是重绘和回流?

  • 重绘是指通过css改变了元素的背景颜色、圆角、透明度等不涉及布局的属性。

  • 回流是指渲染树因元素的尺寸或布局改变而需要重新构建。例如节点的增加与减少、元素大小改变、元素发生位移、获取元素的某些属性(offsetTop、offsetHeight、scrollTop、clientTop...)。

  • 重绘不一定会触发回流,回流一定会触发重绘。


    四、call和apply的区别?

  • call和apply都可以改变this指向。

  • call方法接收多个参数进行调用,apply接收一个数组参数进行调用。


    五、前端性能优化方案?

  • 减少使用内联样式。

  • 减少http请求数,如使用精灵图、充分利用缓存策略...

  • 减少DOM操作减少回流重绘。

  • 图片懒加载。

  • 使用事件委托,在父节点上绑定事件,利用冒泡原理设置子节点。

  • 减少渲染次数,如vue的keep-alive。

  • 使用防抖、节流函数,避免事件重复提交。

  • 启用gzip压缩。

更多内容关注微信公众号“前端阿章”~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容