一、前言
1、、学习计划
这里我用飞书制作了一张学习计划表,里面汇总了一些高频问题、手写题、算法。因为人都是有遗忘曲线的,对于一些巧妙的实现,可以按优先级周期性地去看一下,温故而知新~
点此跳转飞书模板链接,如果需要根据这个学习计划表再自己编辑一个副本,点击一下右上角的“使用模板”即可。
三、面试公司
这里的公司会挑的一些问的问题比较高频的来做汇总,一些只是完全跟着简历问的就不列进去了
广州大学城某公司
一面
- 做过哪些优化,简历里的点。
- 做优化的时候用的什么查看指标或时间
- 用过哪些设计模式,场景是什么
- 组件通信的方式
- vue的v-for里面带key和不带key的区别
- vue-router原理
- 给项目做过什么性能优化的东西(针对第一个问题的补充)
- 小程序首页的优化,重复请求,缩略图,懒加载,分屏加载,虚拟滚动,骨架屏
- webpack的优化。
- 测速方式。speed-measure
- 多进程构建。happypack、thread-loader
- babel配置。
- 代码切割,splitChunks,cdn缓存
- 二次编译。dllPlugin、autoDllPlugin、hardSourcePlugin、webpack5的cache
- vue2到vue3怎么过渡
二面
- 遇到哪些难的点,怎么解决
- 有接触过低代码相关的东西吗
- 谈一下cicd的一些配置和流程
- 谈一下之前给vue提过的pr(简历的点)
- 有没有试过h5转小程序的
广州某跨境电商公司
两个人一起问的,问的挺久的,好久没有面试有点紧张,很多东西也还没有复习到,直接被虐了。不过学到了很多,也是从这时候开始复盘了一下自己的不足,然后重新制定了一下学习计划。
- this指向的情况
- 隐式转换的实现过程
- 数组去重的两种方式(new set 和 哈希去重)
- 深拷贝的实现
- cwv指标有了解过吗(Core Web Vitals)
- commonjs和esmodule的区别
- https握手的过程
- 编程题:输出dom中公有的父节点(忘记原题了)
- 编程题:斐波那契数列(递归和动态规划的方式)
- h5移动端如何适配
- 有使用哪些适配相关的库
- 淘宝的库有存在哪些问题
- rem的原理
- 为什么部分安卓机型无法正常适配
- 哪些css属性和用户行为会导致回流
- 描述restful风格的api有哪些东西
- patch是用来做什么的
- put和patch有什么区别
- js的事件循环
- 哪些api是微任务和宏任务的
- 同步任务执行完成之后会立即执行微任务吗?还会进行什么操作
- 实现一个虚拟dom的思路
- vue实例的挂载过程
- 一般会对axios二次封装哪些内容
- 描述一下小程序的运行机制、更新机制、缓存机制
- 如何启动?冷启动、热启动
- 什么时候进行销毁
- 缓存的周期是怎样的
- 如何销毁缓存
- webpack实践过哪些优化
- webpack有用过哪些提效的插件
- 有没有做过体积的监控
- 生产环境使用何种sourcmap
- 用eval的可以吗?为什么
- 设计模式有哪几类?
- 你常用的设计模式有哪些
- 有了解哪些网络协议
- nodejs有掌握哪些东西
- 有使用过一些处理请求的中间件吗
- 前端的安全有了解哪些
- xss攻击的里面有没有了解过csp
- 平时在前端开发的时候有使用过哪些规范或者跟规范相关的库
- 原型链和作用域链的区别
- 词法作用域怎么理解
- js里面会改变原数组的方法
- 有没有用过grid布局
- 比起flex有什么好处
- Map和WeakMap有什么区别
- Object.defineProperty和proxy有什么区别
- 如何遍历一个对象
- for in遍历对象有什么缺点
- 知道Object.entries()内部是怎么实现的吗
- 有没有听过可迭代协议和迭代器协议
- 短期和长期的发展方向
- 现在有拿到offer吗?我们这边是第一家吗?
广州某公司跨境电商部门
回过头来看,这家其实问的挺简单的。印象中当时有些题答得比较乱,promise输出题因为看漏逻辑写错了其中一个结果,感觉比较减分。因为这个,后面把社区里面能看到的promise练习题全部写了一遍,每次写完都会检查一些console.log的数量有没有对上。后面基本遇到的promise输出题都没有错过了~
- 手写防抖
- setTimeout跟平常的事件有什么区别
- promise输出顺序
- promise的链式调用怎么实现
- 当前题目promise的原型链是怎么样
- promise异常如何去捕获
- setTimeout在哪一次事件循环的
- 堆和栈的区别
- 不同变量之间的垃圾回收机制是什么样的
- 垃圾回收的标记清除法怎么进行标记
- 标记清除的那个算法有了解嘛
- 不同变量之间的垃圾回收机制是什么样的
- 怎么实现自定义指令
- 怎么实现一个发布订阅
- vue怎么去收集依赖
- new Vue做了什么操作
- watch和computed有什么区别
- 发布订阅和观察者有什么区别
- vue中父子组件生命周期的执行顺序
- webpack做过哪些优化
- 怎么配置cdn
- cdn如何进行域名解析
- cdn资源加载失败如何处理
- cdn预热有了解过嘛
- 你们前端是怎么去部署项目的?Node、nginx、镜像?
- ci/cd怎么加速下载依赖
深圳某金融公司
一面
- vue2的响应式原理
- vue3是如何实现的
- 对虚拟Dom的了解
- 如何进行跨页面通信
- localstorage做储存的话有什么限制
- xss攻击的形成和防御
- csrf攻击的形成和防御
- webpack的开发提效
- 如果需要给其他部门开发一个通用的CI/CD流程如何处理和协调?
- 有做过项目的负责人吗
二面
二面的面试官感觉非常喜欢打断人说话,毫不夸张地说,说一句话能打断三次的那种。并且前20分钟一直在扣简历的字眼,语气中带着质疑和不屑,如果后面不是她开始问了一些技术问题,我还以为是HR来的,面试体验不是很好。
不过居然还给我过了,让我感到很意外。
三面
- 为什么想来深圳发展
- 最有成就感的项目或需求
- 基本都是基于简历来问的亮点
深圳某安全公司
一面
- 你觉得你最有挑战的任务是哪一个?
- 简历中写的一些亮点
- 你有去了解过小程序它的原理吗?就是说小程序它跟普通的 web 应用在运行上有什么区别?
- iOS 端需要自己把微信退了才能清除,知道是什么原因吗?
- 讲一下你小程序换肤是怎么做的
- 讲一下你对webpack的了解
- 写过 loader 跟 plugin 吗?
- compiler和compilation知道他们的区别吗?
- webpack开发如何提效
- vue的响应式如何实现
- vue3和vue2的区别
- vue3现在支持了 template 有多个根节点,你知道为什么可以支持了吗?
- typescript有写过吗
- tcp的三次握手
- 握手过程中发的ack是什么
- 算法题:层序遍历N叉树,并输出每个节点的name。
- 如何设计一个下拉框组件,有哪些需要注意的
二面
- 项目分多个端的话,代码仓库是如何管理的
- 小组中有review代码吗?流程是怎么样?有没有总结出一些常犯的错误或者一些review的技巧?
- 算法:类似数组去重的问题(题目忘记了,不过基本就是哈希表的解法)
- 算法:二叉树回溯相关的问题。(当时算法还没有怎么刷,没写出来)
- 如何实现一个类似于百度或谷歌的搜索框?
- 中文输完后再搜索如何处理?
- 假如用户输入了一个字符串'a',然后网络问题请求比较慢;这时候用户输入了一个字符串'ab'。后面导致前一次的响应结果把最后输入的响应结果给覆盖了,如何处理?
- 聊一聊项目中的技术难点
- websocket的心跳检测有了解过吗?
- 虚拟滚动的实现
- 不定高的列表处理方案有哪些?
- CI/CD流程相关(简历中的点)
三面
- 手写题:根据LazyMan这道题原理的一个自定义题目(当时没有看过类似的实现,想得太复杂了,耗费了很多时间,后面随便聊聊就没有后续了。。。)
深圳某健康医疗公司
一面
- 开发过程中遇到的技术问题
- 虚拟滚动相关方案
- 首页优化,优化的维度有哪些
- webpack开发提效
- 有自定义过loader或plugin吗
- webpack5相对于webpack4有哪些优化
- esm和cjs有什么区别
- 一般如何配置项目中的错误监控
- 跨域报错的信息如何处理
- vue2和vue3有哪些优缺点
- 为什么vue2不直接监听数组
- vue的依赖收集和派发更新有了解吗
- vue的diff相关
- vue的runtime-only和runtime-with-compiler这两个版本有什么区别
- vuex有没有用过模块的命名空间
- 如何进行不同模块之间的通信
- 如何理解js的事件循环
- 微任务和宏任务有什么区别
- performance中的lcp有没有了解过?
- http1.1、http2、http3的优缺点
- grid布局有用过吗?
- 如何实现一个九宫格
二面
问的比较杂,挑一些比较经典的
- 使用vue的时候有遇到过什么棘手的问题吗?
- 一道自己出题的简单洗牌算法
- 能讲一下webpack的原理吗
- 数组和链表有什么区别
慢慢沉淀,持续成长,共勉~