常见面试题整理

1,101 阅读9分钟

一、前言

1、、学习计划

这里我用飞书制作了一张学习计划表,里面汇总了一些高频问题、手写题、算法。因为人都是有遗忘曲线的,对于一些巧妙的实现,可以按优先级周期性地去看一下,温故而知新~

点此跳转飞书模板链接,如果需要根据这个学习计划表再自己编辑一个副本,点击一下右上角的“使用模板”即可。

image.png

三、面试公司

这里的公司会挑的一些问的问题比较高频的来做汇总,一些只是完全跟着简历问的就不列进去了

广州大学城某公司

一面

  • 做过哪些优化,简历里的点。
    • 做优化的时候用的什么查看指标或时间
  • 用过哪些设计模式,场景是什么
  • 组件通信的方式
  • 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的原理吗
  • 数组和链表有什么区别

慢慢沉淀,持续成长,共勉~