前端面试题
条评论1.手写promise版本的ajax:https://blog.csdn.net/prince_fmx/article/details/77873795
2.正则表达式文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
https://juejin.im/post/5ac1f1106fb9a028be362731
3.canvas绘图知识点:(1)清除画布:clearRect(a, b, c, d)
(2) 画画
(3) framerate - 动画帧
(4) 碰撞检测
4.webpack - loader、pugin、entry、output
5.浏览器页面渲染过程
6.Vue双向绑定原理:DefineProperty
、DocumentFragment
、发布订阅模式、观察者模式 (思考eventBus)
7.Promise、Promise的Ajax实现
8.深拷贝,改写Object.assign()
(Object.assign
在某些情况下是浅拷贝,在某些情况下是深拷贝,因此不能算完整意义上的深拷贝),以及其他的深拷贝方式
9.同上,jQuery如何使用$extend
来扩充功能,编写插件
10.页面从刚加载到加载完成:
Window.onload
DOMContentLoaded
11.排序算法
12.防抖 - debounce
, 节流 - throttle
- aync await
14.面向对象和原型链
15.优化首屏加载:
1、尽可能的缩小webpack或者其他打包工具生成的包的大小
2、使用服务端渲染的方式
3、使用预渲染的方式
4、使用gzip减小网络传输的流量大小
5、按照页面或者组件分块懒加载
16.图片预加载和懒加载:
预加载:1.将图片写到css中,但是让图片不显示(background-size: 0
),把class名加到页面上
2.通过new Image
或者createElement image来预加载图片;
3.使用Ajax等库实现;
以上都是在等到页面加载完成之后再开始
4.html5的原生特性:prefetch
和prerender
懒加载:将图片链接写在`data-src`上,滑到再加载;
17.怎样将自定义函数挂载到jQuery上
18.document.createDocumentFragment()
和document.createElement()
的区别
19.slice\splice\split\replace\repeat
20.事件委托
21.垃圾回收、内存泄露