前端好问题收录
ps: 尽量能通过文章来解释清楚
- 你有做过好项目吗?
这里的“好项目”是指:你能在项目中从 0 到 1 打造应用的基础设施、确定应用的工程化方案、实现应用构建和发布的流程、设计应用中的公共方法和底层架构。 - 你知道 Vue.js 完整版本和运行时版本的区别吗?
- 请你手写一个“匹配有效括号”算法,你能做到吗?20. 有效的括号 - 力扣(LeetCode)
- 如何设计一个 C 端 Polyfill 方案?
如果不清楚@babel/preset-env的useBuiltIns不同配置背后的设计理念,何谈了解 Babel?更别说设计一个性能更好的降级方案了。
前端工程化
- 候选人通常可能被问到的问题包括:
- 做了很多的管理端/H5,有考虑过怎么提升开发效率吗?
- 你的项目里,有没有哪些工作是可以用工具完成的?
- 项目中有进行组件和公共库的封装吗?
- 如何管理这些公共组件/工具的兼容问题?
- 日常工作中,如何提升自己的工作效率?
- 团队作战并非单打独斗,那么如何设计工作流程,打造一个众人皆赞的项目根基?
- 项目依赖纷繁复杂,如何做好依赖管理和公共库管理?
- 如何深入理解框架,真正做到精通框架和准确拿捏技术选型?
- 从最基本的网络请求库说起,如何设计一个稳定灵活的多端 Fetch 库?如何设计一个网络请求库
- 如何借助 Low Code 或 No Code 技术,实现越来越智能的应用搭建方案?低代码
- 如何统一中后台项目架构,提升跨业务线的产研效率?
- 如何开发设计一套适合业务的组件库,封装分层样式,最大限度做到复用,提升开发效率?
- 如何设计跨端方案,“Write Once,Run Everywhere”是否真的可行?
- 如何处理各种模块化规范,以及精确做到代码拆分?
- 如何区分开发边界,比如前端如何更好地利用 Node.js 方案开疆扩土?
错误监控系统
- 如何监听路由切换
- 如何监听所有的页面按钮点击
- 如何监控一个人的在线时间
- 监控数据采集时是否会丢数据
- 性能上报上报哪些数据
- 如何实现插件化 & 按需加载 学习资料
- 监控 SDK 如何做逻辑解耦 & 多平台?学习资料
- 监控项目的上报策略和上报优化
- 削峰限流的实现逻辑
- 监控告警是怎么实现的
- 服务端错误聚合的实现方式
- 是否有考虑到错误信息相同,但是不是同一个错误的场景
- message 是动态变化的,但是实际上是属于同一个错误怎么处理?
- 前端获取到错误信息时,不生成错误
hash,而是原样发送给后端,由后端采用一个字符串相似度算法,判断能不能聚合到一起;
- 前端获取到错误信息时,不生成错误
- 前端暴力削峰有没有考虑以用户为比例;
- LCP 的值,如果被骨架屏干扰怎么办;
- 上报 PV 还附带哪些数据
- 如何重写底层的 XMLHttpRequest
- 为什么要自研监控平台
- 可以实现前后端全链路 API 监控
- 接入公司缺陷管理平台(bug平台,实现一系列的监控告警闭环流程)
- 可以自定义业务的监控维度和数据分析维度(
一些具有独特监控角度的业务,需要自研) - 为什么不用 Sentry
- 上报失败怎么处理
Vue
-
说说 Vue3 和 Vue2 的响应式原理吧
-
为什么要用 Proxy,区别在哪里;
小提示:先回答
Vue2响应式的缺点;再点明换了Proxy后的好处; -
那 Vue3 为什么要用 Reflect 呢
小提示:这一题答清reflect的this问题修正就可以了,其余的内容看自己的理解进行回答; -
Vue3/2 对数组都做了特殊处理吗
-
Vue3 相比 Vue2 除了响应式还有没有别的区别
-
来个经典问题:Computed 计算属性原理,怎么实现惰性求值
浏览器原理
- 说说缓存机制
- 浏览器解析到 JS 和 CSS 时是如何处理的?
- JS 带 async 和 defer 的区别
- 如果同时出现多个 async 或 defer 怎么解析;
- 了解哪些浏览器安全方面的问题
计算机网络问题
- HTTP 灵魂之问
- HTTP2、HTTP3 聊聊
- 服务器推送这个特性为什么要特别说一下
- 队头阻塞了解吗?聊一聊;
- Quic 基于 UDP 如何保证了可靠性?