百度前端一面 秋招 提前批
1.说说你在之前的实习和项目中遇到的挑战(我说了一个帧率优化的问题,怎么排查问题怎么做对照实验然后如何解决)
2.说说canvas怎么实现一个音频播放的波形图(这我真没画过,我说我大概会封装一个函数,传入几个参数大概和高度,每个波开始的横坐标和结束的横坐标有关,然后绘制出一个波形图)
3.说说canvas怎么实现一个圆角矩形(我说大概是四个圆弧加四条直线?其实我不太清楚问这个的目的)
4.你会封装组件,滑条怎么封装的,具体说说(大概说了分为滑条和按钮两个部分,有哪些参数,用到了移动端手势相关的库,动画怎么实现之类的)
5.大文件上传和断点续传原生方法怎么写(我提到了blob之类的,但具体的确实遗忘了很多,最后是调api实现的)
6.二次封装axios怎么封装(说了个请求拦截器和响应拦截器)
7.国际化怎么做的,右写语言怎么弄的(html有自带的dir属性)
8.Vue2和Vue3的区别(Tree-shaking,组合式api,proxy,更好的diff算法,去除eventbus,ref用法的改变)
9.说说Vue3的diff算法为什么比Vue2好(只记得个Patch Flag避免更新不必要的子树还有一个静态提升)
10.Vue2和Vue3分别有什么缺点(Vue2的缺点其实就是刚刚提到的那些,但是Vue3的缺点我真不知道,最后面试官提醒说是可能对某些浏览器的兼容性不够好)
11.说说http1.0和1.1的缓存方面的区别(1.0是LastModified和Expires,1.1引入Etag还有cache-control)
12.Vite和Webpack的区别了解吗(只记得Vite利用了浏览器原生的ES模块支持,所以热更新更快,还有webpack的Loader和Plugin说了一下,面试官说还有Vite不用先打包,所有快)
13.写过webpack插件吗?(我真没写过)
14.口述一下爬楼梯问题怎么解(动态规划)
15.文档还有视频在线预览怎么做的(没复习以前的项目代码是这样的,根本不记得)
16.输入url到渲染页面的全过程(全部背诵)
17.websocket了解吗(只知道可以用于即时通信,然后我还提到了web worker)
18.那web worker说一下(不该提这个的,我只说了一个多线程)
剩下的在图片里