前端好问题收录

ps: 尽量能通过文章来解释清楚

  • 你有做过好项目吗?
    这里的“好项目”是指:你能在项目中从 0 到 1 打造应用的基础设施、确定应用的工程化方案、实现应用构建和发布的流程、设计应用中的公共方法和底层架构。
  • 你知道 Vue.js 完整版本和运行时版本的区别吗?
  • 请你手写一个“匹配有效括号”算法,你能做到吗?20. 有效的括号 - 力扣(LeetCode)
  • 如何设计一个 C 端 Polyfill 方案?
    如果不清楚@babel/preset-envuseBuiltIns 不同配置背后的设计理念,何谈了解 Babel?更别说设计一个性能更好的降级方案了。

前端工程化

工程效率问题收集

  • 候选人通常可能被问到的问题包括:
  • 做了很多的管理端/H5,有考虑过怎么提升开发效率吗?
  • 你的项目里,有没有哪些工作是可以用工具完成的?
  • 项目中有进行组件和公共库的封装吗?
  • 如何管理这些公共组件/工具的兼容问题?
  • 日常工作中,如何提升自己的工作效率?
  • 团队作战并非单打独斗,那么如何设计工作流程,打造一个众人皆赞的项目根基?
  • 项目依赖纷繁复杂,如何做好依赖管理和公共库管理?
  • 如何深入理解框架,真正做到精通框架和准确拿捏技术选型?
  • 从最基本的网络请求库说起,如何设计一个稳定灵活的多端 Fetch 库?如何设计一个网络请求库
  • 如何借助 Low Code 或 No Code 技术,实现越来越智能的应用搭建方案?低代码
  • 如何统一中后台项目架构,提升跨业务线的产研效率?
  • 如何开发设计一套适合业务的组件库,封装分层样式,最大限度做到复用,提升开发效率?
  • 如何设计跨端方案,“Write Once,Run Everywhere”是否真的可行?
  • 如何处理各种模块化规范,以及精确做到代码拆分?
  • 如何区分开发边界,比如前端如何更好地利用 Node.js 方案开疆扩土?

错误监控系统

  • 如何监听路由切换
  • 如何监听所有的页面按钮点击
  • 如何监控一个人的在线时间
  • 监控数据采集时是否会丢数据
  • 性能上报上报哪些数据
  • 如何实现插件化 & 按需加载 学习资料
  • 监控 SDK 如何做逻辑解耦 & 多平台?学习资料
  • 监控项目的上报策略和上报优化
  • 削峰限流的实现逻辑
  • 监控告警是怎么实现的
  • 服务端错误聚合的实现方式
  • 是否有考虑到错误信息相同,但是不是同一个错误的场景
  • message 是动态变化的,但是实际上是属于同一个错误怎么处理?
    • 前端获取到错误信息时,不生成错误hash,而是原样发送给后端,由后端采用一个字符串相似度算法,判断能不能聚合到一起;
  • 前端暴力削峰有没有考虑以用户为比例;
  • LCP 的值,如果被骨架屏干扰怎么办;
  • 上报 PV 还附带哪些数据
  • 如何重写底层的 XMLHttpRequest
  • 为什么要自研监控平台
    • 可以实现前后端全链路 API 监控
    • 接入公司缺陷管理平台(bug平台,实现一系列的监控告警闭环流程)
    • 可以自定义业务的监控维度和数据分析维度(一些具有独特监控角度的业务,需要自研
    • 为什么不用 Sentry
  • 上报失败怎么处理

Vue

Vue 问题

  • 说说 Vue3 和 Vue2 的响应式原理吧

  • 为什么要用 Proxy,区别在哪里;

    小提示:先回答Vue2响应式的缺点;再点明换了Proxy后的好处;

  • 那 Vue3 为什么要用 Reflect 呢
    小提示:这一题答清reflectthis问题修正就可以了,其余的内容看自己的理解进行回答;

  • Vue3/2 对数组都做了特殊处理吗

  • Vue3 相比 Vue2 除了响应式还有没有别的区别

  • 来个经典问题:Computed 计算属性原理,怎么实现惰性求值

浏览器原理

Chrome问题

  • 说说缓存机制
  • 浏览器解析到 JS 和 CSS 时是如何处理的?
  • JS 带 async 和 defer 的区别
  • 如果同时出现多个 async 或 defer 怎么解析;
  • 了解哪些浏览器安全方面的问题

计算机网络问题

  • HTTP 灵魂之问
  • HTTP2、HTTP3 聊聊
  • 服务器推送这个特性为什么要特别说一下
  • 队头阻塞了解吗?聊一聊;
  • Quic 基于 UDP 如何保证了可靠性?

前端编程题

JavaScript 专题

正则题

HTML、CSS 专题

Vue 问题

React问题