一、HTML相关
二、CSS相关
1、说一下css的景深,应用场景
2、说一下css阴影的参数都表示什么
3、flex如何完成骰子布局
4、垂直居中有哪些方法(尽可能多的说)
5、尽可能多的说一下transform的用法以及各个参数代表什么,如何使用,项目中都在什么场景下使用
6、说一下圣杯布局和双飞翼布局
三、JavaScript相关
1、谷歌浏览器的V8引擎是如何解析一段JavaScript代码的
2、new关键字都经历了哪些步骤和操作
3、说一下对原型以及原型链的理解
4、说一下javascript的作用域和作用域链,ES5和ES6有什么不同。
5、说一下对this的理解
6、说一下对闭包的理解
7、JavaScript为什么是单线程的
8、JavaScript的异步实现方案,有什么优缺点
9、async/awit的底层实现原理
10、async/awit必须要在一起使用吗,可以单独使用awit吗,有这样用吗?什么是可以单独一个awit使用,什么时候必须要配合async使用。
11、说一下Promise的用法,以及Promise的有缺点
12、什么时候回触发Promise.all()的catch方法
13、Promise.all()和Promise.race()有什么区别
14、浏览中的事件循环机制和Node中的循环机制有什么不同
15、Libuv的实现原理
16、Node中的循环机制是哪6个
17、IO操作是在哪个阶段
18、词法作用域是ES5就有还是ES6新增的
19、用了哪些ES6方法,应用场景是什么
20、如何用js写一个脚本,定时爬取网站信息
21、说一下面向对象、函数式编程、面向切面编程的区别
22、sesson和cookie的区别
23、几种模块化的区别(AMD、CMD、Commonjs、es6的module)
24、什么是反柯里化
四、Vue/Vuex
1、Vue模板编译原理
2、Vuex的作用以及使用场景
3、Vuex中的action和mutations有什么区别
4、Vuex中的数据变化了为什么Vue视图也会更新,Vue和Vuex是如何配合的,底层原理是如何实现
5、Vuex中mutation中可以写ajax请求吗
6、Vue是如何对对象进行劫持的
7、Vue中的Object.defineProperty能劫持数组吗
8、Vue2中是如何实现对数组的劫持的
9、Vue3的proxy解决了哪些问题
10、Vue3做了哪些优化改进
11、Vue2和Vue3对静态节点是如何做解析的
12、Vue2是如何生成虚拟Dom的
13、AST和虚拟Dom有什么区别
14、vue-router有几种模式
15、hash和histroy模式的实现原理是什么
16、hash和histroy模式有什么区别
17、为什么会有多种模式,只有一种不行吗?
18、路由钩子都有哪些,哪些是是全局路由钩子,哪些是组件钩子
19、这些钩子分别在什么场景下使用,有什么好处,使用的话有什么不好的地方
20、Vue中的use有什么作用,源码是如何实现的
21、Vue中mixin的合并原理,并说下有什么缺点
22、Vue和jq的优缺点
23、Vue和react的优缺点
24、说几个react的优化方案
25、Vue中的mixin和react的高阶组件有什么区别和联系
26、尽可能多的说一下Vue中的组件通信方式
27、Vue中$nextTick的使用场景,为什么能做到Dom加载完成之后,才去执行里面的方法,源码实现方案
28、Vue的extend的使用场景,能说下源码实现吗
29、Vue双向绑定机制是如何实现的
30、Vue响应式原理是如何实现的
31、Vue中的diff算法是如何实现的,path源码有研究过吗
五、webpack
1、都做过哪些优化方案
2、这些优化方案提升了哪些指标,(是打包快了,还是文件小了...)
3、有没有做过针对某个指标做webpack优化
4、loader和plugin有哪些区别
5、loader和plugin是异步执行还是同步的,如果是同步的哪个先执行哪个后执行
6、如何从0实现一个loader以及plugin
7、webpack如何将一个大的js代码分割成多个小的js文件
8、webpack如何配置阻止插件或者是vue版本的更新
9、配置webpack的时候,都用过哪些插件,分别都有什么作用
10、webpack的热更新原理是什么,为什么能实现我们修改了代码,浏览器能自动更新
11、webpack起的服务和浏览器是通过什么进行通信的
12、webpck和roolup的区别,分别在什么时候使用
六、前端安全
1、说一下前端安全
七、http/https
1、网络通信的原理
2、HTTPS的原理,如何实现加密的
3、对称加密和非对称加密的区别以及优缺点
4、http中的缓存都是在哪个版本引入的
5、哪些是强缓存,哪些是协商缓存,
6、为什么出现了express还要出cache-control,express有什么缺点
7、http3用的是什么协议
8、http从0.9-3每个版本更新了哪些操作
9、http2中的多路复用是什么意思,解决了http1.1的什么问题
10、http1.1能实现多路复用吗,为什么
八、数据结构和算法
1、快排的实现思想
2、快排中的基准元素如何选择
3、树形结构都知道哪些
4、二叉树的深度优先和广度优先是如何实现的
5、二叉树的前序、中序、后序以及层次遍历的区别,以及如何实现的
6、如何在链表中删除一个元素(单向链表和双向链表的实现都说一下)
7、如何判断链表不是一个闭环链表
8、对红黑树有什么自己的理解吗
9、快排的时间复杂度
九、微前端
1、微前端是如何实现的
2、你认为微前端带来了哪些影响
3、qiankun有了解多少,qiankun是如何实现微前端的
4、说说你对微前端的认识
十、Git
1、git commit之后,发现错了,如何回滚回来
2、假如昨天项目上线了,今天你在开发新的功能,老板突然来说要临时紧急加一个需求马上上线,这个时候该怎么操作
3、项目上线时候,如何对版本打补丁
4、如果线上项目出现了很严重的bug,一时半会解决不了,但是为了不影响客户使用,需要回滚到上一个版本,该如何做。
5、Git Flow的理解
6、git pull和git fetch的区别
7、查看本地分支和远程分支
8、如何新建本地分支
9、代码冲突了怎么解决
十一、TypeScript
1、Ts有什么作用,
2、ts是在哪个阶段进行类型验证的
十二、Node
1、用node实现过哪些东西
2、有用过pm2吗,如何配置的
3、pm2是如何实现进程守护的
4、如何用node实现一个pm2
十三、Axios
1、axios如何取消请求
2、axios如何做到一次性批量发送请求(不要使用循环)(为了服务器测压)
3、说下你在项目中是如何配置axios的
4、有用过fetch吗,说一下fetch、axios、原生ajax请求的区别
十四、其他
1、能不能自己通过flutter、node、mysql独立完成一个app项目
2、nginx的正向代理和反向代理
3、如何配置nginx的负载均衡
4、浏览器的垃圾回收机制说一下
5、堆和栈中的回收机制有什么不一样
6、如何解决跨域问题