Skip to content

飞书

一面 1

  1. 自我介绍
  2. 问你最擅长的技术栈是什么 Vue
  3. 根据简历,问你做项目的整个流程
  4. 项目中遇到的问题,以及解决方法
  5. 网页性能优化
  6. 浏览器的循环机制
  7. Vue2.0 添加属性的方法,$set,添加后页面会立即更新吗
  8. Vue2.0 响应式的原理
  9. Vue2.0 和 Vue3.0 的区别
  10. 实现 new 方法(手写代码)
  11. 实现深拷贝(手写代码)
  12. 给定两个版本号,比较大小(手写代码)
    • v1=2.0 v2=1.0 输出 1
    • v1=2.0 v2=1.0.1 输出 1
    • v1=2.0 v2=3.0 输出-1
    • v1=2.001.1 v2=2.01.1 输出 0
    • v1=2.0 v2=2.0 输出 0
    • v1=2.0 v2=2.0.0 输出 0
js
function compareVersion(v1, v2) {
  // 分割版本号字符串为数组
  let arr1 = v1.split(".");
  let arr2 = v2.split(".");

  // 获取最长长度,用于循环比较
  let maxLength = Math.max(arr1.length, arr2.length);

  for (let i = 0; i < maxLength; i++) {
    // 将当前段转换为整数进行比较
    let num1 = parseInt(arr1[i] || "0", 10);
    let num2 = parseInt(arr2[i] || "0", 10);

    // 如果num1大于num2,则返回1
    if (num1 > num2) {
      return 1;
    }
    // 如果num1小于num2,则返回-1
    else if (num1 < num2) {
      return -1;
    }
  }

  // 所有段都相等时,返回0表示两者相等
  return 0;
}

一面 2

  1. var、let、const 的区别;
  2. 谈谈 promise?异步编程;为什么要异步或是要 promise?
  3. 谈到 axios 时,问了下 axios 怎么实现的,与 ajax 及 fetch 的区别?
  4. 给一段代码输出返回值?settimeout\promise\ascny 相关;
  5. tcp 四次握手?
  6. css 动画旋转相关问题?
  7. 写个点赞延时执行的函数,给定参数延迟时间及 callback?

一面 3

  1. 讲一讲微前端有哪些实现策略
  2. 讲一讲你之前的项目采取了哪些安全策略? 讲一讲 XSS 攻击和 CSRF 攻击
  3. 实现三栏布局, 用 float + BFC 和 flex 两种方式
  4. 实现单行文本在父元素中不换行, 溢出部分变成省略号形式
  5. 防抖, 节流的定义及二者区别, 手写防抖的实现
  6. 讲一讲浏览器缓存机制, 涉及到哪些 http 报文字段?
  7. 讲一讲 js 事件循环机制, 列举宏任务, 微任务有哪些?看代码说结果
  8. 算法: 给定一个字符串, 里面只有 a, b, c 三种字符, 要求从头遍历到尾, 去掉所有的 b, 和所有的 ac
js
function removeChars(str) {
  let result = "";

  for (let i = 0; i < str.length; i++) {
    if (
      str[i] !== "b" &&
      !(str[i] === "a" && i + 1 < str.length && str[i + 1] === "c")
    ) {
      result += str[i];
    } else if (str[i] === "a" && i + 1 < str.length && str[i + 1] === "c") {
      i++; // 跳过下一个字符,因为它是和当前'a'组成'ac'
    }
  }

  return result;
}

一面 4

  1. 项目难点【描述】
  2. 如何设计权限系统,如何维护和定义、表的数据结构是怎样的【举例】【描述】
  3. 中间人劫持,怎么防止。x-frame-option? 白屏怎么办?也不一定嵌入 iframe 啊,可以嵌入脚本、图片,怎么阻止
  4. class 组件和 function 组件对比。写过安卓吗,那对 class 组件有什么看法【描述】
  5. hook 缺点,hook 代码难维护怎么解决【描述】
  6. redux 为什么每次 reducer 要返回一个新对象,面对大量节点如何优化【
  7. immuatable 和 shouldupdate 配合、immuatable 数据一些对比问题【描述】
  8. http 缓存、离线包原理、移动端首屏幕加载速度优化、webview 冷启动、预热【描述】
  9. 一个很牛逼很多功能的 class 组件,里面有业务生命周期(获取数据前后、弹出窗口前后...),怎么在函数组件里面直接复用它【举例】
  10. 给定一个整数数组 a,其中 1 ≤ a[i] ≤ n (n 为数组长度), 其中有些元素出现两次而其他元素出现一次。【编程】
  11. 找到所有出现两次的元素。你可以不用到任何额外空间并在 O(n)时间复杂度内解决这个问题吗?

一面 5

字节校招

  1. 自我介绍
  2. 前端学习路线
  3. 项目中遇到的难点
  4. token 登录怎么实现的
  5. 我想关闭浏览器后还能保持登录状态怎么实现
  6. 还有其它的登录方法吗
  7. Vue 路由中我想用前进和后退怎么实现
  8. 项目用的什么类型路由模式
  9. hash 模式怎么实现前进和后退
  10. Vue 为什么要有虚拟 DOM?好处和工作流程?
  11. 如果我计算属性有三个值计算了三次,那页面渲染了几次?
  12. 那如果我又加了一个异步数据呢?
  13. Vue 从 DOM 树建立完成到页面上呈现做了哪些工作?
  14. Vue 的渲染机制能详细说一下吗?
    • 都说标签里面要加 key,你知道为什么吗?
    • 那 for 和 if 里面加 key 效果一样吗?
  15. 说一下闭包。
  16. 闭包用在什么场景
  17. 重排和重绘的概念,如何可以减少?
  18. http2.0 相比 http1.0 多了哪些特性?
  19. 为什么可以多路复用?队头阻塞了解吗?
  20. http1.0 是怎么做的?
  21. 浏览器为什么只能建立 6 个连接?
  22. 那为什么 XXX(一个不知道的概念)允许让浏览器可以建立多个连接,不是不好吗?
  23. 浏览器的渲染线程是怎么工作的?
  24. 浏览器渲染线程和 js 线程冲突吗?是一起同时工作的?
  25. 一个浏览器只能有一个进程吗?
  26. 有没有遇到过看项目文档不懂的时候,怎么解决的?
  27. 代码题:写输出结果。
  28. 代码题:异步实现加法

二面 1

  1. cdn 原理【描述】
  2. 为什么多域名部署【描述】
  3. 单元测试、e2e 测试【描述】
  4. event loop【描述】
  5. 项目介绍一下【描述】
  6. 客户端 mock 怎么支持【描述】【举例】
  7. 怎么 mock 真数据,我需要真的 id 怎么办,除了写死【描述】
  8. 什么情况用 ts、什么时候不用【描述】
  9. 组件、库一定要,不重要的业务代码、节奏快的业务代码不用
  10. 单元测试和 ts 结合【描述】【举例】
  11. 全球远程调度机器实现自动化测试【描述】
  12. cjs 实现 esm【伪代码】

三面 1

  1. 你之前的部门用的微前端什么方案
  2. 讲讲 js 原型链, 手写用 Object.create()实现继承的代码
  3. Webpack 打包原理; 你都知道哪些 plugin, 讲讲常见的 plugin 的功能和原理;
  4. 问了一堆 babel 的配置,完全听不懂...
  5. 除了 Webpack 你还接触过哪些前端打包工具? 讲讲 Webpack, rollup, vite 三者的区别
  6. 你们的项目是怎么解决样式隔离问题的? CSS Module 还是 CSS in JS 你说你之前的项目用的 CSS Module, 那它有哪些缺点? 你使用:global(), 在微前端中如何做到样式隔离?
  7. 每个微前端子工程加一个 babel-plugin-react-css-modules, 打包时给该子工程内所有 class 名前面加上该子工程标识
  8. 你使用 :global() 去定义 antd 底层 class,如果 antd 版本更新, 底层 class 名变了,你怎么办?除了手动修改代码好像是没办法
  9. 讲讲 mobx 原理, 用的什么设计模式
  10. 讲讲 vuex 和 mobx 区别? 讲讲单例模式, 观察者模式和发布-订阅模式 de
  11. 自己动手实现一个 js 单例模式
  12. 闭包 + 立即执行函数, 或者将变量绑定在全局作用域
  13. 讲讲什么是闭包
  14. ts 里 type 和 interface 的区别以及使用场景
  15. ts 的泛型接触过吗? 泛型主要为了解决什么问题
  16. Node.js 相对于原生 js 有哪些区别?
  17. 列举你知道的前端优化方案, 讲讲 React 的异步加载和懒引入原理
  18. 你刚才说到避免浏览器重排 如何获取某个 DOM 节点的位置? 用 clientTop 和 clinetLeft 为什么会导致浏览器重排?
  19. 你刚才说优化方案里讲到避免内存泄露, 说说如何排查内存泄漏? 火焰图接触过吗
  20. 讲讲前端工程化主要涉及哪些内容
  21. 你刚才提到规范化 那你讲讲你们项目的 git 提交规范吧

三面 2

  1. 项目介绍。权限系统业界内怎么设计,常见的几种【描述】
  2. 工作量体现到什么地方,现在工作量大吗【描述】
  3. 最困难的环节【举例】
  4. 优点缺点、未来规划
  5. 怕被人挑战吗,怎么应对

Released under the MIT License.