# 面试者技能栈 & 项目
- 熟悉 vue 全家桶、源码
- webpack、gulp 源码
- babel 编译源码
- cordova 混合 app 开发
- 前端工程化、脚手架、搭建 CICD
- 计算机网络、web 安全、浏览器原理
- 低代码
- java
- 微信小程序
# js 基础
- 作用域和执行上下文的区别
- es5 的继承,es6 继承
- js 的垃圾回收机制
# vue
- 介绍 Vue template 到 render 的过程?
vue 首先将 template 进行词法分析变为 tokens 数组,通过语法分析变为 vue 的 ast, 根据 ast 添加 js 独有的属性变为 javaScript-ast, 然后根据 javaScript-ast 生成 render 函数
- vue 怎么进行依赖收集的?
- 对虚拟 DOM 的理解?虚拟 DOM 主要做了什么?
- vue3 了解嘛,做了哪些优化,新功能?
- vue3 hook 有哪些?
- 说一下 vue3 的 compistion API?
- vite 了解嘛?原理?会存在哪些问题?
- 做过 ssr 嘛?遇到过哪些问题?怎么解决?
# babel
- 开发过 babel 插件嘛
- 插件是怎么实现的
- 为什么会想到用 babel 方案去开发这个插件
- 开发这个 babel 插件遇到了哪些问题,怎么解决的
# webpack
- webpack 和 gulp 的优缺点
- webpack 运行的流水线
- esModule 和 commonJS 在 webpack 打包过程中有什么不同
- webpack 优化
- webpack 有哪些缺点
- sourcemap,生产环境怎么调试?
- tapable 是干嘛的?异步串行钩子实现思路?
# cordova 混合 app 开发
- cordova 架构
- 和 webview h5 对比
# 前端工程化、脚手架、cicd
- 你理解的前端工程化,要做哪些
- 脚手架做了什么
- cicd 搭建流程
- 有哪些改进点
# 计算机网络
- https 握手过程
- tcp、udp 区别
- tcp 靠什么保证传输文稳定性,滑动窗口、慢启动、拥塞控制
- websocket 了解嘛?心跳检测?
- http2、http3
# web 安全
- 项目中做过哪些 web 安全方面的处理
- 中间人攻击
- csp
# 浏览器原理
- 浏览器渲染流程
- 渲染和事件循环的关系
- 浏览器分层 + 合成
- transform:translate3d 为什么性能较好
# 低代码
- 对低代码平台的理解
- 你们这个项目能够实现哪些功能
- 低代码项目团队需要多少人
# 数据结构 & 算法
- 项目中有遇到过数据结构 & 算法的问题嘛
# 微信小程序
- 微信小程序底层架构?为什么性能比 h5 要强?
# 其他
- 浏览器垃圾回收机制
- 闭包和内存泄漏
- 长列表怎么优化
- 作用域和执行上下文区别
- 项目中做过监控嘛?性能监控?错误监控?
# 开放题
- 侧边栏组件设计思路
- java 和 js 差异,分别适合什么类型的项目
- 做一个视频会议技术选型、要考虑的点
- 哔哩哔哩要考虑的点