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双向绑定原理:DefinePropertyDocumentFragment、发布订阅模式、观察者模式 (思考eventBus)

7.Promise、Promise的Ajax实现

8.深拷贝,改写Object.assign()Object.assign在某些情况下是浅拷贝,在某些情况下是深拷贝,因此不能算完整意义上的深拷贝),以及其他的深拷贝方式

9.同上,jQuery如何使用$extend来扩充功能,编写插件

10.页面从刚加载到加载完成:

  • Window.onload
  • DOMContentLoaded

11.排序算法

12.防抖 - debounce, 节流 - throttle

  1. 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的原生特性:prefetchprerender

懒加载:将图片链接写在`data-src`上,滑到再加载;


17.怎样将自定义函数挂载到jQuery上

18.document.createDocumentFragment()document.createElement()的区别

19.slice\splice\split\replace\repeat

20.事件委托

21.垃圾回收、内存泄露