一、javascript基础
上下文
1.什么是上下文
2.什么是作用域链
作用域
1.js 中的this是什么
2.如何改变this的指向
3.call和apply的区别
4.手写call 和 apply
5.手写bind
闭包
1.闭包是什么?
2.应用场景
原型
1.原型是什么
2.原型链是什么
3.如何实现原型的继承
继承
1.继承的方式有多少种
深拷贝、浅拷贝
1.什么是深拷贝
2.什么是浅拷贝
3.如何实现深、浅拷贝
4.拷贝时需要注意哪些问题
5.如何解决循环引用的问题
事件机制
1.手写一个发布订阅
2.介绍一下event loop
3.什么是宏任务、什么是微任务,区别是什么
二、es6
promise
1.什么是promise
2.手写一个promise
3.async await
常用数组方法
三、React
- 生命周期
- 组件通信
- hooks
- HOC
四、Vue
- 生命周期
- 组件通信
- mixin
- 计算、侦听属性
五、webpack
- 构建流程
- webpack与rollup的异同
- loader:1.常用loader 2.说两个loader的思路
- plugin: 1. 常用plugin 2.说两个plugin的思路
- webpack 热更新如何实现
- webpack 优化
- dell
- tree shaking
- scope hosting
- babel原理
- 模板引擎
打包
- 压缩
- 图片处理
六、性能优化
网络优化
- dns
- cdn
- 缓存
- preload
- prefetch
- lazy
代码优化
- loading骨架屏
- web worker
- 虚拟列表
- lazy load
七、网络
http
1.状态码
2.304和302的区别
3.http缓存策略
4.connection 中的keep-alive是表示什么
dns
cdn
1.应用场景 2.回源是什么
tcp
1.三次握手
2.四次挥手
https
- 工作原理
从输入url到页面展示发生了什么
xss
csrf
风控策略
可信前端
服务端安全策略
八、状态管理
vuex
redux
CI/CD
八、其他
- 函数式编程
- service worker
- web worker
- mvvm